Удаление пустых файлов из папки Temp


#include <Windows.h>
#include <iostream>
#include <string>
#include <vector>

using namespace std;

int main(){
  TCHAR TempDir[MAX_PATH];
  DWORD ErrorCode;
  DWORD result = GetTempPath(MAX_PATH, TempDir);
  WIN32_FIND_DATA fd;
  string pattern(TempDir);
  pattern.append("*");
  HANDLE hFind = FindFirstFile(pattern.c_str(), &fd);
  if (hFind == INVALID_HANDLE_VALUE){
    ErrorCode = GetLastError();
    cout << "FindFirstFile failed with error code " << ErrorCode << endl;
    return ErrorCode;
  }
  vector<string> files;
  do {
    if (!(fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
      if (fd.nFileSizeLow == 0 && fd.nFileSizeHigh == 0)
        files.push_back(string(TempDir) + fd.cFileName);
  }
  while (FindNextFile(hFind, &fd) != 0);
  FindClose(hFind);
  int fcount = files.size();
  cout << "Empty files count: " << fcount << endl;
  int dcount = 0;
  for (int i = 0; i < fcount; i++)
    if (DeleteFile(files[i].c_str()))
      dcount++;
    else {
      ErrorCode = GetLastError();
      cout << "DeleteFile(" << files[i] << ") failed with error code " <<
        ErrorCode << endl;
    }

  cout << "Deleted files count: " << dcount << endl;
  return 0;
}
Реклама
Запись опубликована в рубрике программирование с метками , . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s