您的位置:首页 > 其它

删除指定目录下所有文件及目录

2014-03-24 18:05 302 查看
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: