我的删除文件夹的方法,看看哪里不对。

kgdiwss 2005-06-27 12:16:12
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!
要删除的结果为什么都一样啊!
...全文
191 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kgdiwss 2005-06-28
  • 打赏
  • 举报
回复
我这样不行的吗?我用DeleteFile.
蒋晟 2005-06-28
  • 打赏
  • 举报
回复
SHFileOperation FO_DELETE
或者调DelTree都可以
kgdiwss 2005-06-27
  • 打赏
  • 举报
回复
因为我不知道如何调试这种程序,所以我用printf打印出来了。
kgdiwss 2005-06-27
  • 打赏
  • 举报
回复
帮帮忙啊。

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧