首先我定义了个删除某一文件夹的方法
- C/C++ code
BOOL DeleteDirectory(char *DirName)//参数结尾不包含‘\’{ CFileFind tempFind; char tempFileFind[200]; sprintf(tempFileFind,"%s\\*.*",DirName); MessageBox(0,tempFileFind,NULL,MB_OK); BOOL IsFinded=(BOOL)tempFind.FindFile(tempFileFind); while(IsFinded) { IsFinded=(BOOL)tempFind.FindNextFile(); if(!tempFind.IsDots()) { char foundFileName[200]; strcpy(foundFileName,tempFind.GetFileName().GetBuffer(200)); if(tempFind.IsDirectory()) { char tempDir[200]; sprintf(tempDir,"%s\\%s",DirName,foundFileName); DeleteDirectory(tempDir); } else { char tempFileName[200]; sprintf(tempFileName,"%s\\%s",DirName,foundFileName); DeleteFile(tempFileName); } } } tempFind.Close(); if(!RemoveDirectory(DirName)) { MessageBox(NULL,"失败!",NULL,MB_OK); return FALSE; } return TRUE;}
该方法在正常情况下是好用滴...可是!当目标文件夹内部存在'公文包'(就是右键能直接创建的那种)类型的文件时
会失败。
求高手赐教!解决‘公文包’问题彻底实现完全删除!
------解决方案--------------------------------------------------------
你先看一下“公文包”具体是个什么东东,有哪些特殊属性,程序删除失败时有没有错误码。
我记得“公文包”好象是一个“软连接”,记不清了。