Ч
ЕЛЯБИНСК,
ЮУ
Р
ГУ
,
ИЕТН
Назад
Начало
Учебные материалы
Полезные библиотеки
Подразделы
Другие разделы
Библиотека для графических интерфейсов nuklear
Графическая библиотека
Консольный ввод-вывод coniow
Консольный ввод-вывод curses
Передача данных по сети
Распараллеливание программ
Управляющие последовательности
Дата и время
21/12/2024 22:26:10
Авторизация
Имя:
Пароль:
Вход
Зарегистрироваться
Восстановить пароль
Файловая система
Библиотеки
Действия с файлами
Действия с папками
Действия с папками
Операции|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 {\
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``