Ч
ЕЛЯБИНСК,
ЮУ
Р
ГУ
,
ИЕТН
Назад
Начало
Учебные материалы
Полезные библиотеки
Подразделы
Другие разделы
Библиотека для графических интерфейсов nuklear
Графическая библиотека
Консольный ввод-вывод coniow
Консольный ввод-вывод curses
Передача данных по сети
Распараллеливание программ
Управляющие последовательности
Дата и время
22/12/2024 09:12:30
Авторизация
Имя:
Пароль:
Вход
Зарегистрироваться
Восстановить пароль
Файловая система
Библиотеки
Действия с файлами
Действия с папками
Действия с файлами
Операции|C++|C/POSIX|Windows
--|--|--|--
Удаление| ``if(remove(name)) // OK`` | ``#include <stdio.h>\
if(remove(name)==0) // OK`` | ``if(DeleteFileA(name)) // OK``
Переименование| ``rename(from,to)`` | ``#include <stdio.h>``\
``if(rename(from, to)==0) // OK``|``if(MoveFileA(from, to)) // OK``
Копирование| ``if(copy_file(from,to)) // OK``\
дополнительно можно указать опции\
``copy_options::skip_existing``,\
``overwrite_existing``, ``update_existing`` | можно реализовать как\
``#include <stdio.h>\
FILE *f1=fopen(from,"rb"),\
*f2=fopen(to,"wb");\
char buf[BUFSIZ]; int n;\
while((n=fread(buf,1,BUFSIZ,f1))>0)\
fwrite(buf,1,n,f2);\
fclose(f1);\
fclose(f2);`` | ``if(CopyFileA(from, to,\
1 /* не перезаписывать*/)) // OK``
Существование| ``if(exists(name))`` // существует | ``#include <unistd.h>\
if(access(name, F_OK)==0) // существует``\
можно также указать R_OK (доступен для чтения),\
W_OK (записи), X_OK (выполнения) | ``if(GetFileAttributesA(name)!=-1) // существует``
Файл или папка?|``if(is_regular_file(name)) // файл\
if(is_directory(name)) // папка``| ``#include <sys/stat.h>\
struct stat buf;\
stat(name,&buf);\
if(buf.st_mode&S_IFREG) // файл\
if(buf.st_mode&S_IFDIR) //папка`` | ``int a=GetFileAttributesA(name);\
if(a!=-1) // существует\
if(a&FILE_ATTRIBUTE_DIRECTORY) // папка\
else // файл``
Размер и время изменения| ``uintmax_t size=file_size(name);\
file_time_type ft=last_write_time(name);`` | ``#include <sys/stat.h>\
struct stat buf;\
stat(name,&buf);\
uintmax_t size=buf.st_size\
struct timespec ft=buf.st_mtime;`` | ``WIN32_FILE_ATTRIBUTE_DATA fad;\
GetFileAttributesExA(name,\
GetFileExInfoStandard, &fad);\
uintmax_t size=(fad.nFileSizeHigh<<32LL)\
+fad.nFileSizeLow;\
FILETIME ft=fad.ftLastWriteTime;``
Чтение ограничений доступа| ``auto prms=status(name).permissions();``| ``#include <sys/stat.h>\
struct stat buf;\
stat(name,&buf);\
int mode=buf.st_mode;``| ``GetFileSecurity``
Установка ограничений доступа| ``permissions(name, prms);``| ``#include <unistd.h>\
chmod(name, mode);``| ``SetFileSecurity``
Выполнение исполняемого файла|``#include <cstdlib>\
if(system("program.exe")==0) // OK``|``#include <stdlib.h>\
if(system("program.exe")==0) // OK``| ``if(WinExec("program.exe", SW_MINIMIZE)==0) // OK``