VC如何删除文件夹

来源:百度知道 编辑:UC知道 时间:2024/06/07 16:59:57
在D盘有个文件夹jjgsdata,使用hFile = FindFirstFile( srcPath,&findFileData );查找文件夹下文件,如果有from01文件夹则进入from01,没则建立_mkdir(jjgsPath),进入后再查找文件,有20080813文件夹则再进入,没则建立。
现在的问题是如果进入了20080813文件夹后,我从D:\jjgsdata里移动了一些文件过来,并将凡是压缩包的文件都解压在该文件夹下后,并查找该文件夹下文件,如果还有文件夹,比如goodfolder的话,则进入并将里面的文件转移到20080813里。使用 FindClose(newhFile1);后,想删除该goodfolder文件夹,怎么删除?发现_rmdir(goodfolder路径)没有用啊?
对于楼下的回答,我不是很明白啊。SHFILEOPERATION是Shell操作于文件的啊,我想要的是删除文件夹啊。而且你的回答都没有注释的啊。是复制的?不过还是谢谢了
哎,我这上不了CSDN,不知道为何!我也用了SHFILEOPERATION方法了,提示我文件夹在被使用中,无法删除。哎,我都结束了FindClose()该文件夹了啊。还是被使用?

恩,CSDN里COPY的,还一种是用递归的,应该更好理解。
另外_rmdir应该只能删除空目录吧。

应该关闭所有要删除的句柄吧……我这没VC,不过这里有一份用递归的代码你可以参考下:
http://203.208.35.101/search?q=cache:GbwnJy4soRYJ:blog.163.com/liuguangqian_866/blog/static/430366012008490401094/+SHFileOperation+%E6%96%87%E4%BB%B6%E5%A4%B9%E5%88%A0%E9%99%A4&hl=zh-CN&ct=clnk&cd=10&gl=cn&client=aff-os-maxthon&st_usg=ALhdy2-xppRFoLOPWXE52Gq3DwR_H3-LSA

因为是google的缓存所以地址有点长

void CDlltestDlg::OnOK()
{
// TODO: Add extra validation here
SHFILEOPSTRUCT FileOp;
FileOp.fFlags = FOF_SILENT | FOF_NOCONFIRMATION | FOF_NOERRORUI;//设定标志:不显示提示对话框
FileOp.pFrom = "C:\\aaa";//要删除的目录名,相对的