diff --git a/.idea/APD_L1.iml b/.idea/APD_L1.iml index bc2cd87..4c94235 100644 --- a/.idea/APD_L1.iml +++ b/.idea/APD_L1.iml @@ -1,8 +1,2 @@ - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/example.txt b/example.txt new file mode 100644 index 0000000..b45ef6f --- /dev/null +++ b/example.txt @@ -0,0 +1 @@ +Hello, World! \ No newline at end of file diff --git a/main.c b/main.c index bdeaff4..70f059a 100644 --- a/main.c +++ b/main.c @@ -42,13 +42,13 @@ int getVolumeInformation() { } // --- -long getFileSize() { +long getFileSize(LPCSTR path) { printf("- GetFileSize:\n"); HANDLE hFile; DWORD fileSize; unsigned long structLargeInt; // Открытие файла - hFile = CreateFile((LPCSTR) "../text.txt", + hFile = CreateFile(path, GENERIC_READ, FILE_SHARE_READ, NULL, @@ -101,13 +101,13 @@ int getWindowsDirectory() { printf("Виндосв папка тут: %s\n", windowsDir); return 0; } -int compareFileTime() { +int compareFileTime(LPCSTR path_1, LPCSTR path_2) { printf("- CompareFileTime:\n"); FILETIME fileTime1; FILETIME fileTime2; // первый файл - HANDLE file1 = CreateFile((LPCSTR) "../text.txt", + HANDLE file1 = CreateFile(path_1, GENERIC_READ, FILE_SHARE_READ, NULL, @@ -122,7 +122,7 @@ int compareFileTime() { CloseHandle(file1); // Открываем второй файл - HANDLE file2 = CreateFile((LPCSTR) "../text2.txt", + HANDLE file2 = CreateFile(path_2, GENERIC_READ, FILE_SHARE_READ, NULL, @@ -157,7 +157,7 @@ int setLocalTime() { // Заполнение структуры SYSTEMTIME данными текущего времени GetLocalTime(&systemTime); - printf("\nДата и время ДО изменения: %02d-%02d-%d %02d:%02d:%02d\n", + printf("Дата и время ДО изменения: %02d-%02d-%d %02d:%02d:%02d\n", systemTime.wDay, systemTime.wMonth, systemTime.wYear, systemTime.wHour, systemTime.wMinute, systemTime.wSecond); @@ -172,50 +172,42 @@ int setLocalTime() { SetLocalTime(&systemTime); printf("Время успешно изменено\n"); - printf("\nДата и время ПОСЛЕ изменения: %02d-%02d-%d %02d:%02d:%02d\n", + printf("Дата и время ПОСЛЕ изменения: %02d-%02d-%d %02d:%02d:%02d\n", systemTime.wDay, systemTime.wMonth, systemTime.wYear, systemTime.wHour, systemTime.wMinute, systemTime.wSecond); return 0; } -int setFileAttributes() { +void getFileAttributes(LPCSTR path){ + DWORD fileAttributes = GetFileAttributes(path); + if (fileAttributes & FILE_ATTRIBUTE_READONLY) { + printf("\n/Read-only"); + } + if (fileAttributes & FILE_ATTRIBUTE_HIDDEN) { + printf("\n/Hidden"); + } + if (fileAttributes & FILE_ATTRIBUTE_DIRECTORY) { + printf("\n/Directory"); + }// и так далее для других атрибутов файла... + printf("\n"); +} +int setFileAttributes(LPCSTR path) { printf("- SetFileAttributes:\n"); // Gуть к файлу - LPCWSTR filePath = L"..\\text3.txt"; // Сбрасываем атрибуты файла - SetFileAttributes((LPCSTR) filePath, (DWORD) NULL); + SetFileAttributes(path, (DWORD) NULL); // Текущие атрибуты файла - DWORD fileAttributes = GetFileAttributes((LPCSTR) filePath); printf("\tТекущие атрибуты файла ДО замены: "); - if (fileAttributes & FILE_ATTRIBUTE_READONLY) { - printf("\n- Read-only"); - } - if (fileAttributes & FILE_ATTRIBUTE_HIDDEN) { - printf("\n- Hidden"); - } - if (fileAttributes & FILE_ATTRIBUTE_DIRECTORY) { - printf("\n- Directory"); - }// и так далее для других атрибутов файла... - printf("\n"); + getFileAttributes(path); // Устанавливаем атрибуты файла - DWORD newFileAttributes = FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_DIRECTORY |fileAttributes; - BOOL result = SetFileAttributes((LPCSTR) filePath, (DWORD) newFileAttributes); - - fileAttributes = GetFileAttributes((LPCSTR) filePath); + DWORD newFileAttributes = FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_DIRECTORY; + BOOL result = SetFileAttributes( path, (DWORD) newFileAttributes); printf("\tТекущие атрибуты файла ПОСЛЕ замены: "); - if (fileAttributes & FILE_ATTRIBUTE_READONLY) { - printf("\n- Read-only"); - } - if (fileAttributes & FILE_ATTRIBUTE_HIDDEN) { - printf("\n- Hidden"); - } - if (fileAttributes & FILE_ATTRIBUTE_DIRECTORY) { - printf("\n- Directory"); - }// и так далее для других атрибутов файла... - printf("\n"); + + getFileAttributes(path); return 0; } @@ -257,46 +249,24 @@ int createFile() { return 0; } -void copyFile(const char* sourceFile, const char* destinationFile) { - printf("- CopyFile:\n"); - - FILE* source = fopen(sourceFile, "rb"); - FILE* destination = fopen(destinationFile, "wb"); - - // Копируем содержимое файла - char buffer[1024]; - size_t bytesRead; - while ((bytesRead = fread(buffer, 1, sizeof(buffer), source)) > 0) { - fwrite(buffer, 1, bytesRead, destination); - } - - // Закрываем файлы - fclose(source); - fclose(destination); - - printf("Файл успешно скопирован.\n"); -} - int main() { setlocale(LC_ALL, "Rus"); printf("\n----------------------------\n"); printf("\tИнформация о дисках:\n"); - // getLogicalDriveStrings();// + получение букв дисков - // getVolumeInformation();// + получение информации о файловой системе выбранного логического диска + getLogicalDriveStrings();// + получение букв дисков + getVolumeInformation();// + получение информации о файловой системе выбранного логического диска printf("\n------------------------------------------\n"); printf("\tИнформация о файлах и директориях:\n"); - // getFileSize();// + получает размер файла - // findNextFile();// + поиск следующего файла в месте поиска - // getWindowsDirectory();// + путь к основному каталогу виндовс - // compareFileTime();// + определение какой из файлов более новый + getFileSize("text.txt");// + получает размер файла + findNextFile();// + поиск следующего файла в месте поиска + getWindowsDirectory();// + путь к основному каталогу виндовс + compareFileTime("text.txt", "text2.txt.");// + определение какой из файлов более новый printf("\n----------------------------\n"); printf("\tУправляющие функции:\n"); - // setLocalTime();// + установить текущую дату и время - // setFileAttributes();// + установка файловых атрибутов - // createFile();// создать/открыть файл - const char* sourceFile = ".//text.txt"; - const char* destinationFile = ".//text33.txt"; - CopyFile(".//text.txt", ".//text3.txt", 0);// скопировать файл + setLocalTime();// + установить текущую дату и время + setFileAttributes("text3.txt");// + установка файловых атрибутов + createFile();// + создать/открыть файл + CopyFile("text.txt", "text3.txt", 0);// скопировать файл } diff --git a/main.exe b/main.exe new file mode 100644 index 0000000..0985ba4 Binary files /dev/null and b/main.exe differ diff --git a/text2.txt b/text2.txt index 51762f3..6c1f6a0 100644 --- a/text2.txt +++ b/text2.txt @@ -18,4 +18,4 @@ text.txt text.txt text.txt text.txt -text.txttexttext.txtывыфвывыав \ No newline at end of file +text.txttexttext.txtывыфвывыавsd \ No newline at end of file diff --git a/text3.txt b/text3.txt index e69de29..6461503 100644 --- a/text3.txt +++ b/text3.txt @@ -0,0 +1,21 @@ +;lkadsnf;lkjsd;cjsa;dijwaijfiaejfaiosjfs;lknv;lsan;lkadsnf;lkjsd;cjsa;dijwaijfiaejfaiosjfs;lknv;lsan;lkadsnf;lkjsd;cjsa;dijwaijfiaejfaiosjfs;lknv;lsan;lkadsnf;lkjsd;cjsa;dijwaijfiaejfaiosjfs;lknv;lsan;lkadsnf;lkjsd;cjsa;dijwaijfiaejfaiosjfs;lknv;lsan;lkadsnf;lkjsd;cjsa;dijwaijfiaejfaiosjfs;lknv;lsan +;lkadsnf;lkjsd;cjsa;dijwaijfiaejfaiosjfs;lknv;lsan +;lkadsnf;lkjsd;cjsa;dijwaijfiaejfaiosjfs;lknv;lsan +;lkadsnf;lkjsd;cjsa;dijwaijfiaejfaiosjfs;lknv;lsan;lkadsnf;lkjsd;cjsa;dijwaijfiaejfaiosjfs;lknv;lsan + +;lkadsnf;lkjsd;cjsa;dijwaijfiaejfaiosjfs;lknv;lsan +;lkadsnf;lkjsd;cjsa;dijwaijfiaejfaiosjfs;lknv;lsanss +;lkadsnf;lkjsd;cjsa;dijwaijfiaejfaiosjfs;lknv;lsan +;lkadsnf;lkjsd;cjsa;dijwaijfiaejfaiosjfs;lknv;lsan +text.txttext.txttext.txt + +text.txttext.txttext.txttext.txtsss +text.txttext.txttext.txttext.txt + + +text.txttext.txttext.txt +text.txtss +text.txt +text.txt +text.txt +text.txttexttext.txtss \ No newline at end of file