Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otchet_3 (2).docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.15 Mб
Скачать

Void SetFAttributes(char *s)

{

DWORD dwAttrs = FILE_ATTRIBUTE_READONLY;

if (!SetFileAttributesA(s, dwAttrs))

cout << "Error!";

else

cout << "READONLY attribute was set.";

}

Void GetFInformationByHandle(char *s)

{

BY_HANDLE_FILE_INFORMATION lpFileInformation;

HANDLE FileHandle = CreateFileA(s, 0, FILE_SHARE_READ | FILE_SHARE_WRITE,

NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);

if (!GetFileInformationByHandle(FileHandle, &lpFileInformation))

{

cout << "Error!";

return;

}

else

{

cout << "\nAttributes:\n";

if (lpFileInformation.dwFileAttributes & FILE_ATTRIBUTE_ARCHIVE)

cout << "FILE_ATTRIBUTE_ARCHIVE\n";

if (lpFileInformation.dwFileAttributes & FILE_ATTRIBUTE_COMPRESSED)

cout << "FILE_ATTRIBUTE_COMPRESSED\n";

if (lpFileInformation.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)

cout << "FILE_ATTRIBUTE_DIRECTORY\n";

if (lpFileInformation.dwFileAttributes & FILE_ATTRIBUTE_ENCRYPTED)

cout << "FILE_ATTRIBUTE_ENCRYPTED\n";

if (lpFileInformation.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN)

cout << "FILE_ATTRIBUTE_HIDDEN\n";

if (lpFileInformation.dwFileAttributes & FILE_ATTRIBUTE_NORMAL)

cout << "FILE_ATTRIBUTE_NORMAL\n";

if (lpFileInformation.dwFileAttributes & FILE_ATTRIBUTE_OFFLINE)

cout << "FILE_ATTRIBUTE_OFFLINE\n";

if (lpFileInformation.dwFileAttributes & FILE_ATTRIBUTE_READONLY)

cout << "FILE_ATTRIBUTE_READONLY\n";

if (lpFileInformation.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT)

cout << "FILE_ATTRIBUTE_REPARSE_POINT\n";

if (lpFileInformation.dwFileAttributes & FILE_ATTRIBUTE_SPARSE_FILE)

cout << "FILE_ATTRIBUTE_SPARSE_FILE\n";

if (lpFileInformation.dwFileAttributes & FILE_ATTRIBUTE_SYSTEM)

cout << "FILE_ATTRIBUTE_SYSTEM\n";

if (lpFileInformation.dwFileAttributes & FILE_ATTRIBUTE_TEMPORARY)

cout << "FILE_ATTRIBUTE_TEMPORARY\n";

SYSTEMTIME time, localTime, accessTime, localAccessTime, writeTime, localWriteTime;

if (!FileTimeToSystemTime(&lpFileInformation.ftCreationTime, &time))

{

cout << "\nError creation time!";

return;

}

else

{

SystemTimeToTzSpecificLocalTime(NULL, &time, &localTime);

cout << "\nCreation time: " << localTime.wDay << "." << localTime.wMonth << "." << localTime.wYear << ' ' << localTime.wHour <<

":" << localTime.wMinute << ":" << localTime.wSecond;

}

if (!FileTimeToSystemTime(&lpFileInformation.ftLastAccessTime, &accessTime))

{

cout << "\nError access time!";

return;

}

else

{

SystemTimeToTzSpecificLocalTime(NULL, &accessTime, &localAccessTime);

cout << "\nLast access time: " << localAccessTime.wDay << "." << localAccessTime.wMonth << "." << localAccessTime.wYear << ' ' <<

localAccessTime.wHour << ":" << localAccessTime.wMinute << ":" << localAccessTime.wSecond;

}

if (!FileTimeToSystemTime(&lpFileInformation.ftLastWriteTime, &writeTime))

{

cout << "\nError access time!";

return;

}

else

{

SystemTimeToTzSpecificLocalTime(NULL, &writeTime, &localWriteTime);

cout << "\nLast write time: " << localWriteTime.wDay << "." << localWriteTime.wMonth << "." << localWriteTime.wYear << ' ' <<

localWriteTime.wHour << ":" << localWriteTime.wMinute << ":" << localWriteTime.wSecond;

}

cout << "\n\nVolume serial number: " << HIWORD(lpFileInformation.dwVolumeSerialNumber) << "-" << LOWORD(lpFileInformation.dwVolumeSerialNumber);

cout << "\nSize of file: " << ((lpFileInformation.nFileSizeHigh * (MAXDWORD + 1)) + lpFileInformation.nFileSizeLow) / 1024 << " kB";

cout << "\nNumber of link: " << lpFileInformation.nNumberOfLinks;

CloseHandle(FileHandle);

}

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]