Изменяет время создание / редактирования/ открытия всех файлов (и папок тоже) в текущей директории (рекурсивно проходит по всем папкам текущей деректории делая тоже само для них) Исключительно под Win. Время устанавливается в текущее. При желании можете изменить на любое (ищи комент в коде) Code: #include <iostream> #include <Windows.h> #include <io.h> #include <fcntl.h> #include <string> #include <tchar.h> #include <stdio.h> #include <atlcomtime.h> // class COleDateTime using namespace std; #define MAX_PATH_LINGTH 512 void ScanFile(const LPCWSTR path, const LPCWSTR mask); bool IsNoSistemDir(const LPCWSTR filename); void ModificTimeAttribute(const LPCWSTR path, WIN32_FIND_DATA& handle); void ShowTimeAttrFile(const FILETIME&, const char* preText); int main(int argc, char* argv[]) { ScanFile(L".", L"*"); char stop; cin >> stop; } void ScanFile(const LPCWSTR path, const LPCWSTR mask) { WIN32_FIND_DATA FindFileData; HANDLE hFind; WCHAR buf[MAX_PATH_LINGTH]; wsprintf(buf, L"%s\\%s", path, mask); hFind = FindFirstFile(buf, &FindFileData); if (hFind != INVALID_HANDLE_VALUE) { do { if(IsNoSistemDir(FindFileData.cFileName)) { if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { wsprintf(buf, L"%s\\%s", path, FindFileData.cFileName); ScanFile(buf, L"*"); ModificTimeAttribute(path, FindFileData); } else { ModificTimeAttribute(path, FindFileData); } } }while(FindNextFile(hFind, &FindFileData)); FindClose(hFind); } } void ModificTimeAttribute(const LPCWSTR path, WIN32_FIND_DATA& handle) { // /*ShowTimeAttrFile(handle.ftCreationTime, "\t[Old] time create:\t"); ShowTimeAttrFile(handle.ftLastAccessTime, "\t[Old] time access:\t"); ShowTimeAttrFile(handle.ftLastWriteTime, "\t[Old] time write :\t");*/ WCHAR pathToFile[MAX_PATH_LINGTH]; wsprintf(pathToFile, L"%s\\%s", path, handle.cFileName); HANDLE hfile; wcout << pathToFile << endl; if (handle.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { hfile = CreateFile(pathToFile, GENERIC_READ | GENERIC_WRITE, 0 , NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL); } else { hfile = CreateFile(pathToFile, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_WRITE | FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, 0); } FILETIME ft; SYSTEMTIME st; // Установите свое время !!!!! COleDateTime dt = COleDateTime::GetCurrentTime(); dt.GetAsSystemTime(st); SystemTimeToFileTime(&st, &ft); if (!SetFileTime(hfile, &ft, &ft, &ft)) CloseHandle(hfile); } bool IsNoSistemDir(const LPCWSTR filename) { if (wcscmp(filename, L".") == 0) return false; if (wcscmp(filename, L"..") == 0) return false; return true; } void ShowTimeAttrFile(const FILETIME& ft, const char* preText) { SYSTEMTIME timeUTC, timeLocal; FileTimeToSystemTime(&ft, &timeUTC); SystemTimeToTzSpecificLocalTime(NULL, &timeUTC, &timeLocal); cout << preText << timeLocal.wYear << "/" << timeLocal.wMonth << "/" << timeLocal.wDay << " " << timeLocal.wHour << ":" << timeLocal.wMinute<< ":" << timeLocal.wSecond<< endl; }