2014年3月24日18:04:58
删除指定目录下所有文件及目录
1、使用VS2008创建一个带预编译头的控制台项目。
2、源文件内容:
#include "stdafx.h"
#include <windows.h>
#include<iostream>
using namespace std;
// 删除指定目录下所有文件及目录
bool DelDirContent(TCHAR * tcsPath)
{
WIN32_FIND_DATA wfd;
HANDLE hFind;
TCHAR tcsFullPath[MAX_PATH] = {0};
TCHAR tcsDirFilter[MAX_PATH] = {0};
_tcscpy(tcsDirFilter,tcsPath);
_tcscat(tcsDirFilter,_T("\\*"));
hFind = FindFirstFile(tcsDirFilter, &wfd);
if (hFind == INVALID_HANDLE_VALUE)
{
printf ("FindFirstFile failed (%d)\n", GetLastError());
return false;
}
do
{
if (_tcscmp(wfd.cFileName, _T(".")) == 0 ||
_tcscmp(wfd.cFileName, _T("..")) == 0 )
{
continue;
}
_tcscpy(tcsFullPath,tcsPath);
_tcscat(tcsFullPath,_T("\\"));
_tcscat(tcsFullPath,wfd.cFileName);
//去掉只读属性
DWORD dwAttributes = GetFileAttributes(tcsFullPath);
if (dwAttributes & FILE_ATTRIBUTE_READONLY)
{
dwAttributes &= ~FILE_ATTRIBUTE_READONLY;
SetFileAttributes(tcsFullPath, dwAttributes);
}
if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
DelDirContent(tcsFullPath);
RemoveDirectory(tcsFullPath);
}
else
{
if(!DeleteFile(tcsFullPath))
{
printf("删除文件失败\n");
}
}
}while (FindNextFile(hFind, &wfd));
FindClose(hFind);
return true;
}
int main( void )
{
char ch;
TCHAR tcsFileName[MAX_PATH] = {0};
_tcscpy(tcsFileName,TEXT("CenterTransLog"));
DelDirContent(tcsFileName);
printf("程序结束\n");
cin>>ch;
return 0;
}