|
|
|
@@ -42,28 +42,33 @@ int getVolumeInformation() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// ---
|
|
|
|
|
long getFileSize() {
|
|
|
|
|
long getFileSize(LPCSTR path) {
|
|
|
|
|
printf("- GetFileSize:\n");
|
|
|
|
|
HANDLE hFile;
|
|
|
|
|
DWORD fileSize;
|
|
|
|
|
unsigned long structLargeInt;
|
|
|
|
|
unsigned long long high;
|
|
|
|
|
unsigned long long low;
|
|
|
|
|
// Îòêðûòèå ôàéëà
|
|
|
|
|
hFile = CreateFile((LPCSTR) "../text.txt",
|
|
|
|
|
hFile = CreateFile(path,
|
|
|
|
|
GENERIC_READ,
|
|
|
|
|
FILE_SHARE_READ,
|
|
|
|
|
NULL,
|
|
|
|
|
OPEN_EXISTING,
|
|
|
|
|
FILE_ATTRIBUTE_NORMAL,
|
|
|
|
|
NULL);
|
|
|
|
|
if (hFile == INVALID_HANDLE_VALUE) {
|
|
|
|
|
printf("Íå óäàëîñü îòêðûòü ôàéë\n");
|
|
|
|
|
CloseHandle(hFile);
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Ïîëó÷åíèå ðàçìåðà ôàéëà
|
|
|
|
|
structLargeInt = GetFileSize(hFile, NULL);
|
|
|
|
|
low = GetFileSize(hFile, (LPDWORD) &high);
|
|
|
|
|
|
|
|
|
|
// Çàêðûòèå ôàéëà
|
|
|
|
|
CloseHandle(hFile);
|
|
|
|
|
|
|
|
|
|
// Âûâîä ðàçìåðà ôàéëà
|
|
|
|
|
printf("Ðàçìåð ôàéëà: %lu áàéò\n", structLargeInt);
|
|
|
|
|
printf("Ðàçìåð ôàéëà: %llu\n", high << 32 | low);
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
int findNextFile() {
|
|
|
|
@@ -101,19 +106,24 @@ 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,
|
|
|
|
|
OPEN_EXISTING,
|
|
|
|
|
FILE_ATTRIBUTE_NORMAL,
|
|
|
|
|
NULL);
|
|
|
|
|
if (file1 == INVALID_HANDLE_VALUE) {
|
|
|
|
|
printf("Íå óäàëîñü îòêðûòü ôàéë 1\n");
|
|
|
|
|
CloseHandle(file1);
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// âðåìÿ èçìåíåíèÿ ïåðâîãî ôàéëà
|
|
|
|
|
GetFileTime(file1, NULL, NULL, &fileTime1);
|
|
|
|
@@ -122,13 +132,18 @@ int compareFileTime() {
|
|
|
|
|
CloseHandle(file1);
|
|
|
|
|
|
|
|
|
|
// Îòêðûâàåì âòîðîé ôàéë
|
|
|
|
|
HANDLE file2 = CreateFile((LPCSTR) "../text2.txt",
|
|
|
|
|
HANDLE file2 = CreateFile(path_2,
|
|
|
|
|
GENERIC_READ,
|
|
|
|
|
FILE_SHARE_READ,
|
|
|
|
|
NULL,
|
|
|
|
|
OPEN_EXISTING,
|
|
|
|
|
FILE_ATTRIBUTE_NORMAL,
|
|
|
|
|
NULL);
|
|
|
|
|
if (file2 == INVALID_HANDLE_VALUE) {
|
|
|
|
|
printf("Íå óäàëîñü îòêðûòü ôàéë 2\n");
|
|
|
|
|
CloseHandle(file2);
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
// Ïîëó÷àåì âðåìÿ èçìåíåíèÿ âòîðîãî ôàéëà
|
|
|
|
|
GetFileTime(file2, NULL, NULL, &fileTime2);
|
|
|
|
|
|
|
|
|
@@ -157,7 +172,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 +187,47 @@ 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() {
|
|
|
|
|
int getFileAttributes(LPCSTR path){
|
|
|
|
|
DWORD fileAttributes = GetFileAttributes(path);
|
|
|
|
|
if (fileAttributes == INVALID_FILE_ATTRIBUTES)
|
|
|
|
|
{
|
|
|
|
|
printf("Îøèáêà îòêðûòèÿ ôàéëà.\n");
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
if (fileAttributes & FILE_ATTRIBUTE_READONLY) {
|
|
|
|
|
printf("\n/Read-only");
|
|
|
|
|
}
|
|
|
|
|
if (fileAttributes & FILE_ATTRIBUTE_HIDDEN) {
|
|
|
|
|
printf("\n/Hidden");
|
|
|
|
|
}
|
|
|
|
|
if (fileAttributes & FILE_ATTRIBUTE_ARCHIVE) {
|
|
|
|
|
printf("\n/Directory");
|
|
|
|
|
}// è òàê äàëåå äëÿ äðóãèõ àòðèáóòîâ ôàéëà...
|
|
|
|
|
printf("\n");
|
|
|
|
|
}
|
|
|
|
|
int setFileAttributes(LPCSTR path, DWORD dwFileAttributes) {
|
|
|
|
|
|
|
|
|
|
printf("- SetFileAttributes:\n");
|
|
|
|
|
// Góòü ê ôàéëó
|
|
|
|
|
LPCWSTR filePath = L"..\\text3.txt";
|
|
|
|
|
// Ñáðàñûâàåì àòðèáóòû ôàéëà
|
|
|
|
|
SetFileAttributes((LPCSTR) filePath, (DWORD) NULL);
|
|
|
|
|
SetFileAttributes(path, (DWORD) 0);
|
|
|
|
|
// Òåêóùèå àòðèáóòû ôàéëà
|
|
|
|
|
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 = dwFileAttributes;
|
|
|
|
|
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 +269,32 @@ 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("\n----------------------------\n----------------------------\n----------------------------\n");
|
|
|
|
|
printf("\tÈíôîðìàöèÿ î äèñêàõ:\n");
|
|
|
|
|
// getLogicalDriveStrings();// + ïîëó÷åíèå áóêâ äèñêîâ
|
|
|
|
|
// getVolumeInformation();// + ïîëó÷åíèå èíôîðìàöèè î ôàéëîâîé ñèñòåìå âûáðàííîãî ëîãè÷åñêîãî äèñêà
|
|
|
|
|
printf("\n------------------------------------------\n");
|
|
|
|
|
printf("\tÈíôîðìàöèÿ î ôàéëàõ è äèðåêòîðèÿõ:\n");
|
|
|
|
|
// getFileSize();// + ïîëó÷àåò ðàçìåð ôàéëà
|
|
|
|
|
getFileSize("text.txt");// + ïîëó÷àåò ðàçìåð ôàéëà
|
|
|
|
|
getFileSize("texàâïàâït.txt");// + ïîëó÷àåò ðàçìåð ôàéëà
|
|
|
|
|
// findNextFile();// + ïîèñê ñëåäóþùåãî ôàéëà â ìåñòå ïîèñêà
|
|
|
|
|
// getWindowsDirectory();// + ïóòü ê îñíîâíîìó êàòàëîãó âèíäîâñ
|
|
|
|
|
// compareFileTime();// + îïðåäåëåíèå êàêîé èç ôàéëîâ áîëåå íîâûé
|
|
|
|
|
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);// ñêîïèðîâàòü ôàéë
|
|
|
|
|
printf("\tÂâåäèòå íóæíûé àòðèáóò äëÿ óñòàíîâêè ôàéëó: 1 - òîëüêî äëÿ ÷òåíèÿ, 2 - ñêðûòûé, 3 - àðõèâíûé\n");
|
|
|
|
|
int chislo = 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);// ñêîïèðîâàòü ôàéë
|
|
|
|
|
}
|
|
|
|
|