- •Void gld()
- •Void glds()
- •Void getDType(char *s)
- •Void getVolumeInf(char *s)
- •Void getDiskSize(char *s)
- •Void SetFAttributes(char *s)
- •Void GetFInformationByHandle(char *s)
- •Void GetFTime(char *s)
- •Void SetFTime(char *s)
- •3.2 Копирование файла с помощью операций перекрывающегося ввода-вывода.
- •Void main()
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);
}
}
