我的删除文件夹的方法,看看哪里不对。
void DeleteDirectory(char* cDeletePath)
{
//保存搜索到的文件的结构
WIN32_FIND_DATA FileData;
//搜索文件返回的句柄
HANDLE hSearch;
printf("********************************\n");
printf("传进来的路径为:%s\n",cDeletePath);
//删除的目录名称
char cDeleteDirectory[256];
char cInDeletePath[256];
//把传进来的搜索路径拷到cDeleteDirectory中
lstrcpy(cDeleteDirectory,cDeletePath);
lstrcpy(cInDeletePath,cDeletePath);
//如果路径最后不是反斜杠,则加上
if(cDeleteDirectory[lstrlen(cDeleteDirectory) - 1] != '\\')
{
lstrcat(cDeleteDirectory,"\\");
}
//把传进来的目录进行一些处理
if(cInDeletePath[lstrlen(cInDeletePath) - 1] != '\\')
{
lstrcat(cInDeletePath,"\\");
}
//如果路径最后面已经是反斜杠,则在路径后面加上*
lstrcat(cDeleteDirectory, "*");
printf("cDeleteDirectory的值为:%s\n",cDeleteDirectory);
//开始搜索文件夹以备递归使用
hSearch = FindFirstFile (cDeleteDirectory, &FileData);
if(hSearch != INVALID_HANDLE_VALUE)
{
do
{
//如果找到的是文件夹
if((FileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
&& FileData.cFileName == "." && FileData.cFileName == "..")
{
printf("找到的文件夹为:%s\n",FileData.cFileName);
lstrcat(cInDeletePath,FileData.cFileName);
printf("要递归的文件夹路径为:%s\n",cInDeletePath);
DeleteDirectory(cInDeletePath);
}
else
{
lstrcat(cDeletePath,"\\");
lstrcat(cDeletePath,FileData.cFileName);
printf("要删除的文件为:%s\n",cDeletePath);
//删除找到的文件
DeleteFile(cDeletePath);
}
}while(::FindNextFile(hSearch,&FileData));
//关闭由FindFirstFile函数创建的一个搜索句柄
::FindClose(hSearch);
}
}
我传入的是:
E:\\250
结果为:
E:\Code\C\MyProject\Clear\Debug>clea
********************************
传进来的路径为:E:\250
cDeleteDirectory的值为:E:\250\*
要删除的文件为:E:\250
要删除的文件为:E:\250
要删除的文件为:E:\250
要删除的文件为:E:\250
要删除的文件为:E:\250
要删除的文件为:E:\250
要删除的文件为:E:\250
要删除的文件为:E:\250
要删除的文件为:E:\250
要删除的文件为:E:\250
要删除的文件为:E:\250
要删除的文件为:E:\250
要删除的文件为:E:\250
要删除的文件为:E:\250
要删除的文件为:E:\250
要删除的文件为:E:\250
要删除的文件为:E:\250
要删除的文件为:E:\250
要删除的文件为:E:\250
要删除的文件为:E:\250
Clear All Recycle Files Successful!
要删除的结果为什么都一样啊!