问一个删除文件夹的问题
目的是要删除(指定)文件夹里面的所有内容,但是文件夹里面还混有文件夹或者文件,而且不知道指定文件夹里面还有几层子文件夹。请教,怎么个删除法?前提用c或者windows 的api;
小妹我想了想,觉得好像要用到递规,但是有点想不清楚,有没有哪位大哥作过??项目急用,谢谢了。
问题点数:30、回复次数:7Top
1 楼happyparrot(快乐鹦鹉)回复于 2005-11-04 11:05:40 得分 5
用递归吧。遍历文件夹的内容,是文件则删除,是目录则递归Top
2 楼hchinside()回复于 2005-11-04 11:29:54 得分 5
当然递归,我用java写过,改成c++也不难,要java代码的话mail我
hchinside@hotmail.comTop
3 楼OpenHero(开勇)回复于 2005-11-04 11:40:21 得分 5
递归 遍历整个文件夹Top
4 楼yangfanchina(笑笑)回复于 2005-11-04 13:52:42 得分 0
应该是递归了,到达最底层时开始delete...Top
5 楼wylove(阿刚)回复于 2005-11-04 13:54:55 得分 10
直接调用api就能搞定
#include "windows.h"
void delete_dir(char* Source)
{
SHFILEOPSTRUCT OpStruc;
OpStruc.hwnd = NULL;
OpStruc.wFunc = FO_DELETE; //FO_COPY, FO_MOVE, FO_DELETE,FO_RENAME
OpStruc.fFlags = FOF_NOCONFIRMATION;
OpStruc.pFrom =Source; //设置源文件或目录
OpStruc.pTo =NULL; //设置目标文件或目录这里是删除文件所以可以忽略
OpStruc.lpszProgressTitle = "正在删除文件……";
//执行函数
SHFileOperation(&OpStruc);
}
void main()
{
delete_dir( "D:\\www");
}Top
6 楼fangrk(加把油,伙计!)回复于 2005-11-04 17:15:19 得分 5
用SHFILEOPSTRUCT 配合SHFileOperation吧!
记住pFrom应该是两个'\0'结尾的
Top
7 楼superxiaomm(小美)回复于 2005-11-07 08:17:01 得分 0
递规算法我自己写好了,谢谢大家Top




