Ч
ЕЛЯБИНСК,
ЮУ
Р
ГУ
,
ИЕТН
Назад
Начало
Учебные материалы
Язык С
Подразделы
Другие разделы
Введение
Массивы, строки и структуры
Операторы
Операции
Переменные и типы
Пояснения к курсовой работе
Препроцессор
Стандарты безопасного кодирования
Указатели и динамическая память
Функции и модули
Ввод-вывод
Дата и время
06/12/2025 00:37:20
Авторизация
Имя:
Пароль:
Вход
Зарегистрироваться
Восстановить пароль
Работа с файлами
Открытие и закрытие файлов, имена файлов
Перенаправление ввода и вывода
Ввод и вывод в текстовый файл
Работа с бинарными файлами
Действия с файлами
Действия с папками
Действия с папками
Операции|C++|C/POSIX|Windows
--|--|--|--
Текущая папка| ``path curdir=current_path();`` | ``#include <unistd.h>\
char buf[1024];\
if(getcwd(buf,sizeof(buf)) // OK`` | ``char buf[1024];\
if(GetCurrentDirectoryA(\
sizeof(buf),buf)!=0) // OK``
Сменить папку| ``current_path(name);`` | ``#include <unistd.h>\
if(chdir(name)==0) // OK`` | `` if(SetCurrentDirectoryA(name)) // OK``
Список файлов и папок в папке| ``for (auto const& entry :\
directory_iterator(name))\
cout<< entry.path().filename().string() <<'\n';``\
У entry также есть методы для\
получения информации об элементе\
``if(entry.is_directory()) // папка``\
``uintmax_t size=entry.file_size();``\
``file_time_type ft=entry.last_write_time();``| ``#include <dirent.h>\
DIR *dir;\
struct dirent *entry;\
if(dir=opendir(name)) {\
while(entry = readdir(dir))\
printf("%s\n",entry->d_name);\
closedir(dir);\
}``| ``WIN32_FIND_DATA ffd;\
char mask[MAX_PATH];\
strcpy(mask,name);\
strcat(mask,"\\*");\
HANDLE hFind=FindFirstFile(mask, &ffd);\
if(hFind!=-1) {\
do {\
// можно проверить папка или файл:\
// if(ffd.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)\
// папка else файл;\
printf("%s\n",ffd.cFileName);\
} while (FindNextFile(hFind, &ffd) != 0);\
FindClose(hFind);\
}``
Создать папку| ``if(create_directory(name)) // OK`` | ``#include <sys/stat.h>\
if(mkdir(name, S_IRWXU \| S_IRWXG)==0) // OK``\
в MinGW mkdir не POSIX-совместимая:\
``if(mkdir(name)==0) // OK`` | ``if(CreateDirectoryA(name,NULL)) // OK``
Удалить папку| ``if(remove(name)) // OK`` | ``#include <unistd.h>\
if(rmdir(name)==0) // OK`` | ``if(RemoveDirectoryA(name,NULL)) // OK``