L1 - v1.2

This commit is contained in:
Суслов Роман 2023-10-22 16:21:53 +03:00
parent b9aa0294f6
commit 52899e12e6
2 changed files with 46 additions and 18 deletions

64
main.c
View File

@ -45,8 +45,8 @@ int getVolumeInformation() {
long getFileSize(LPCSTR path) { long getFileSize(LPCSTR path) {
printf("- GetFileSize:\n"); printf("- GetFileSize:\n");
HANDLE hFile; HANDLE hFile;
DWORD fileSize; unsigned long long high;
unsigned long structLargeInt; unsigned long long low;
// Îòêðûòèå ôàéëà // Îòêðûòèå ôàéëà
hFile = CreateFile(path, hFile = CreateFile(path,
GENERIC_READ, GENERIC_READ,
@ -55,15 +55,20 @@ long getFileSize(LPCSTR path) {
OPEN_EXISTING, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, FILE_ATTRIBUTE_NORMAL,
NULL); NULL);
if (hFile == INVALID_HANDLE_VALUE) {
printf("Íå óäàëîñü îòêðûòü ôàéë\n");
CloseHandle(hFile);
return 1;
}
// Ïîëó÷åíèå ðàçìåðà ôàéëà // Ïîëó÷åíèå ðàçìåðà ôàéëà
structLargeInt = GetFileSize(hFile, NULL); low = GetFileSize(hFile, (LPDWORD) &high);
// Çàêðûòèå ôàéëà // Çàêðûòèå ôàéëà
CloseHandle(hFile); CloseHandle(hFile);
// Âûâîä ðàçìåðà ôàéëà // Âûâîä ðàçìåðà ôàéëà
printf("Ðàçìåð ôàéëà: %lu áàéò\n", structLargeInt); printf("Ðàçìåð ôàéëà: %llu\n", high << 32 | low);
return 0; return 0;
} }
int findNextFile() { int findNextFile() {
@ -114,6 +119,11 @@ int compareFileTime(LPCSTR path_1, LPCSTR path_2) {
OPEN_EXISTING, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, FILE_ATTRIBUTE_NORMAL,
NULL); NULL);
if (file1 == INVALID_HANDLE_VALUE) {
printf("Íå óäàëîñü îòêðûòü ôàéë 1\n");
CloseHandle(file1);
return 1;
}
// âðåìÿ èçìåíåíèÿ ïåðâîãî ôàéëà // âðåìÿ èçìåíåíèÿ ïåðâîãî ôàéëà
GetFileTime(file1, NULL, NULL, &fileTime1); GetFileTime(file1, NULL, NULL, &fileTime1);
@ -129,6 +139,11 @@ int compareFileTime(LPCSTR path_1, LPCSTR path_2) {
OPEN_EXISTING, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, FILE_ATTRIBUTE_NORMAL,
NULL); NULL);
if (file2 == INVALID_HANDLE_VALUE) {
printf("Íå óäàëîñü îòêðûòü ôàéë 2\n");
CloseHandle(file2);
return 1;
}
// Ïîëó÷àåì âðåìÿ èçìåíåíèÿ âòîðîãî ôàéëà // Ïîëó÷àåì âðåìÿ èçìåíåíèÿ âòîðîãî ôàéëà
GetFileTime(file2, NULL, NULL, &fileTime2); GetFileTime(file2, NULL, NULL, &fileTime2);
@ -178,31 +193,36 @@ int setLocalTime() {
return 0; return 0;
} }
void getFileAttributes(LPCSTR path){ int getFileAttributes(LPCSTR path){
DWORD fileAttributes = GetFileAttributes(path); DWORD fileAttributes = GetFileAttributes(path);
if (fileAttributes == INVALID_FILE_ATTRIBUTES)
{
printf("Îøèáêà îòêðûòèÿ ôàéëà.\n");
return 1;
}
if (fileAttributes & FILE_ATTRIBUTE_READONLY) { if (fileAttributes & FILE_ATTRIBUTE_READONLY) {
printf("\n/Read-only"); printf("\n/Read-only");
} }
if (fileAttributes & FILE_ATTRIBUTE_HIDDEN) { if (fileAttributes & FILE_ATTRIBUTE_HIDDEN) {
printf("\n/Hidden"); printf("\n/Hidden");
} }
if (fileAttributes & FILE_ATTRIBUTE_DIRECTORY) { if (fileAttributes & FILE_ATTRIBUTE_ARCHIVE) {
printf("\n/Directory"); printf("\n/Directory");
}// è òàê äàëåå äëÿ äðóãèõ àòðèáóòîâ ôàéëà... }// è òàê äàëåå äëÿ äðóãèõ àòðèáóòîâ ôàéëà...
printf("\n"); printf("\n");
} }
int setFileAttributes(LPCSTR path) { int setFileAttributes(LPCSTR path, DWORD dwFileAttributes) {
printf("- SetFileAttributes:\n"); printf("- SetFileAttributes:\n");
// Góòü ê ôàéëó // Góòü ê ôàéëó
// Ñáðàñûâàåì àòðèáóòû ôàéëà // Ñáðàñûâàåì àòðèáóòû ôàéëà
SetFileAttributes(path, (DWORD) NULL); SetFileAttributes(path, (DWORD) 0);
// Òåêóùèå àòðèáóòû ôàéëà // Òåêóùèå àòðèáóòû ôàéëà
printf("\tÒåêóùèå àòðèáóòû ôàéëà ÄÎ çàìåíû: "); printf("\tÒåêóùèå àòðèáóòû ôàéëà ÄÎ çàìåíû: ");
getFileAttributes(path); getFileAttributes(path);
// Óñòàíàâëèâàåì àòðèáóòû ôàéëà // Óñòàíàâëèâàåì àòðèáóòû ôàéëà
DWORD newFileAttributes = FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_DIRECTORY; DWORD newFileAttributes = dwFileAttributes;
BOOL result = SetFileAttributes( path, (DWORD) newFileAttributes); BOOL result = SetFileAttributes( path, (DWORD) newFileAttributes);
printf("\tÒåêóùèå àòðèáóòû ôàéëà ÏÎÑËÅ çàìåíû: "); printf("\tÒåêóùèå àòðèáóòû ôàéëà ÏÎÑËÅ çàìåíû: ");
@ -253,20 +273,28 @@ int createFile() {
int main() { int main() {
setlocale(LC_ALL, "Rus"); setlocale(LC_ALL, "Rus");
printf("\n----------------------------\n"); printf("\n----------------------------\n----------------------------\n----------------------------\n");
printf("\tÈíôîðìàöèÿ î äèñêàõ:\n"); printf("\tÈíôîðìàöèÿ î äèñêàõ:\n");
getLogicalDriveStrings();// + ïîëó÷åíèå áóêâ äèñêîâ // getLogicalDriveStrings();// + ïîëó÷åíèå áóêâ äèñêîâ
getVolumeInformation();// + ïîëó÷åíèå èíôîðìàöèè î ôàéëîâîé ñèñòåìå âûáðàííîãî ëîãè÷åñêîãî äèñêà // getVolumeInformation();// + ïîëó÷åíèå èíôîðìàöèè î ôàéëîâîé ñèñòåìå âûáðàííîãî ëîãè÷åñêîãî äèñêà
printf("\n------------------------------------------\n"); printf("\n------------------------------------------\n");
printf("\tÈíôîðìàöèÿ î ôàéëàõ è äèðåêòîðèÿõ:\n"); printf("\tÈíôîðìàöèÿ î ôàéëàõ è äèðåêòîðèÿõ:\n");
getFileSize("text.txt");// + ïîëó÷àåò ðàçìåð ôàéëà getFileSize("text.txt");// + ïîëó÷àåò ðàçìåð ôàéëà
findNextFile();// + ïîèñê ñëåäóþùåãî ôàéëà â ìåñòå ïîèñêà getFileSize("texàâïàâït.txt");// + ïîëó÷àåò ðàçìåð ôàéëà
getWindowsDirectory();// + ïóòü ê îñíîâíîìó êàòàëîãó âèíäîâñ // findNextFile();// + ïîèñê ñëåäóþùåãî ôàéëà â ìåñòå ïîèñêà
// getWindowsDirectory();// + ïóòü ê îñíîâíîìó êàòàëîãó âèíäîâñ
compareFileTime("text.txt", "text2.txt.");// + îïðåäåëåíèå êàêîé èç ôàéëîâ áîëåå íîâûé compareFileTime("text.txt", "text2.txt.");// + îïðåäåëåíèå êàêîé èç ôàéëîâ áîëåå íîâûé
printf("\n----------------------------\n"); printf("\n----------------------------\n");
printf("\tÓïðàâëÿþùèå ôóíêöèè:\n"); printf("\tÓïðàâëÿþùèå ôóíêöèè:\n");
setLocalTime();// + óñòàíîâèòü òåêóùóþ äàòó è âðåìÿ // setLocalTime();// + óñòàíîâèòü òåêóùóþ äàòó è âðåìÿ
setFileAttributes("text3.txt");// + óñòàíîâêà ôàéëîâûõ àòðèáóòîâ printf("\tÂâåäèòå íóæíûé àòðèáóò äëÿ óñòàíîâêè ôàéëó: 1 - òîëüêî äëÿ ÷òåíèÿ, 2 - ñêðûòûé, 3 - àðõèâíûé\n");
createFile();// + ñîçäàòü/îòêðûòü ôàéë int chislo = 0;
CopyFile("text.txt", "text3.txt", 0);// ñêîïèðîâàòü ôàéë scanf("%d", &chislo);
if (chislo == 1 || chislo == 2 || chislo == 3)
setFileAttributes("text3.txt", chislo);// + óñòàíîâêà ôàéëîâûõ àòðèáóòîâ
else {
printf("Óêàçàí íåâåðíûé íîìåð àòðèáóòà\n");
}
// createFile();// + ñîçäàòü/îòêðûòü ôàéë
// CopyFile("text.txt", "text3.txt", 0);// ñêîïèðîâàòü ôàéë
} }

BIN
main.exe

Binary file not shown.