本文共 1443 字,大约阅读时间需要 4 分钟。
2014年3月24日18:04:58
删除指定目录下所有文件及目录
1、使用VS2008创建一个带预编译头的控制台项目。
2、源文件内容:
#include "stdafx.h" #include#include 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; }
转载地址:http://kjwci.baihongyu.com/