Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <Windows.h>
- #include <io.h>
- #include <cstdio>
- using namespace std;
- int SaveInt()
- {
- char str[10];
- while(true)
- {
- scanf("%s", str);
- if(atoi(str))
- break;
- else
- printf("Введите число n > 0: ");
- }
- return atoi(str);
- }
- void ShowFile(WIN32_FIND_DATAA findData, string filename)
- {
- filename = findData.cFileName;
- cout << findData.cFileName << "|";
- DWORD fSize = findData.nFileSizeLow;
- cout << findData.nFileSizeLow << " Bytes|";
- SYSTEMTIME stSystemTime;
- if (FileTimeToSystemTime(&findData.ftLastWriteTime, &stSystemTime))
- {
- printf("%d.%d.%d %d:%d|", stSystemTime.wDay, stSystemTime.wMonth, stSystemTime.wYear, stSystemTime.wHour, stSystemTime.wMinute);
- }
- if (findData.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN)
- cout << "Скрытый" << " ";
- if (findData.dwFileAttributes & FILE_ATTRIBUTE_SYSTEM)
- cout << "Системный" << " ";
- if (findData.dwFileAttributes & FILE_ATTRIBUTE_ARCHIVE)
- cout << "Архивный" << " ";
- if (findData.dwFileAttributes & FILE_ATTRIBUTE_READONLY)
- cout << "Только для чтения" << " ";
- if (findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
- cout << "Папка" << " ";
- cout << endl;
- }
- int main()
- {
- SetConsoleCP(1251);
- SetConsoleOutputCP(1251);
- cout << "Добро пожаловать в симуляцию команды \"Dir\"." << endl << "Введите путь: ";
- string path = "";
- getline(cin, path);
- cout << "Выводить файлы с атрибутом \"Только для чтения\"?" << endl << "1. Да\n2. Нет\nВыбор: ";
- int ARead = SaveInt();
- WIN32_FIND_DATAA findData;
- HANDLE hFile = FindFirstFileA(path.c_str(), &findData); //Получаем дескриптор файла(уникальный номер)
- string filename = "";
- std::size_t found;
- string temp;
- if (hFile == INVALID_HANDLE_VALUE)
- {
- cout << "Ошибка!" << endl;
- }
- else
- {
- do
- {
- if(ARead == 1)
- {
- if(findData.dwFileAttributes & FILE_ATTRIBUTE_READONLY)
- ShowFile(findData, filename);
- }
- else
- {
- ShowFile(findData, filename);
- }
- } while(FindNextFileA(hFile, &findData));
- }
- cout << endl << endl;
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement