📄 subject_34141.htm
字号:
<p>
序号:34141 发表者:夏乾坤 发表日期:2003-03-27 02:38:58
<br>主题:如何实现删除文件夹?
<br>内容:API有没有删除文件夹的函数?<BR>或者怎么实现对文件夹的删除?
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:Rikcuo Akira 回复日期:2003-03-27 03:26:00
<br>内容:rmdir<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:夏乾坤 回复日期:2003-03-27 06:11:05
<br>内容:我说的是删除整个文件夹,包函里面的文件
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:kayaker 回复日期:2003-03-27 08:13:55
<br>内容:CString strPath;<BR>if(!strPath.IsEmpty())<BR>{<BR> CFileFind filefind;<BR> BOOL bFound=filefind.FindFile(strPath+"\\*.*", 0);<BR> while(bFound)<BR> {<BR> bFound=filefind.FindNextFile();<BR> if(filefind.IsArchived()) ::DeleteFile(filefind.GetFilePath());<BR> }<BR> filefind.Close();<BR> ::RemoveDirectory(strPath);<BR>}
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:高扬 回复日期:2003-03-27 10:18:37
<br>内容:这位提供的是一层目录下的文件删除吧?<BR>那要有多层呢?多级的文件子目录怎么办?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:(zl剑客) 回复日期:2003-03-27 12:20:19
<br>内容:用SHELL操作
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:晴天 回复日期:2003-03-27 12:39:05
<br>内容:我写过一个函数可以删除带任意深度子目录 的目录,告诉你原理:<BR>就是先递归把所有的目录都找出来放到CStringArray中,后再将这些目录按照级数由深到浅排序。 之后再搞一个循环,依次删除(当然是根据前面的排序结果,先删除级数深的)。这样不就OK了么。不过写完进行测试的时候一定要小心些,我上次为了测试这个函数把我的操作系统搞掉了。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:wowow 回复日期:2003-03-27 17:03:34
<br>内容:删除一个文件夹是一个递归过程。<BR>其原理如下:先删除文件夹下的所有文件(包括子文件夹,所以用递归方式),最后删除该文件夹。<BR>源代码如下(VC6.0):<BR>BOOL DeleteDirectory(CString sDirectory)<BR>{<BR> CString sPath = sDirectory;<BR> sPath += "\\*.*";<BR><BR> CFileFind finder;<BR> CString sFileName;<BR> BOOL bIsFindFile = finder.FindFile(sPath);<BR> while (bIsFindFile)<BR> {<BR> bIsFindFile = finder.FindNextFile();<BR> if (!finder.IsDots())<BR> {<BR> sFileName = finder.GetFilePath();<BR> if (finder.IsDirectory())<BR> {<BR> ::SetFileAttributes(sFileName, FILE_ATTRIBUTE_ARCHIVE);<BR> if (!DeleteDirectory(sFileName))<BR> {<BR> return FALSE;<BR> }<BR> }<BR> else<BR> {<BR> ::SetFileAttributes(sFileName, FILE_ATTRIBUTE_ARCHIVE);<BR> ::DeleteFile(sFileName);<BR> }<BR> }<BR> }<BR> finder.Close();<BR> ::SetFileAttributes(sDirectory, FILE_ATTRIBUTE_ARCHIVE);<BR> if (!::RemoveDirectory(sDirectory))<BR> {<BR> return FALSE;<BR> }<BR> return TRUE;<BR>}
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:夏乾坤 回复日期:2003-03-27 21:05:39
<br>内容:当我使用函数并向里传参值CString的时候出现如下错误:<BR><BR>Linking...<BR>NetManagerDlg.obj : error LNK2001: unresolved external symbol "public: bool __thiscall CNetManagerDlg::DeleteDirectory(class CString)" (?DeleteDirectory@CNetManagerDlg@@QAE_NVCString@@@Z)<BR>Debug/NetManager.exe : fatal error LNK1120: 1 unresolved externals<BR>Error executing link.exe.<BR><BR>NetManager.exe - 2 error(s), 0 warning(s)
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:夏乾坤 回复日期:2003-03-28 22:02:55
<br>内容:HELP mE !
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:夏乾坤 回复日期:2003-03-31 22:40:53
<br>内容:help me !
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:高扬 回复日期:2003-04-01 11:10:11
<br>内容:BOOL DeleteDirectory(LPCTSTR DirName)<BR>{<BR> CFileFind tempFind; <BR> char tempFileFind[200] ={0}; <BR> sprintf(tempFileFind,"%s\\*.*",DirName);<BR> <BR> BOOL IsFinded=(BOOL)tempFind.FindFile(tempFileFind);<BR> <BR> //find first file<BR> while(IsFinded)<BR> {<BR> IsFinded=(BOOL)tempFind.FindNextFile(); //research the next file in recursion<BR> if(!tempFind.IsDots()) //if is not "." directory<BR> {<BR> char foundFileName[200];<BR> strcpy(foundFileName,tempFind.GetFileName().GetBuffer(200));<BR> if(tempFind.IsDirectory()) //if it is directory,then do recursion<BR> { <BR> //DeleteDirectory<BR> char tempDir[200];<BR> sprintf(tempDir,"%s\\%s",DirName,foundFileName);<BR> DeleteDirectory(tempDir);<BR> }<BR> else<BR> { <BR> //if it is file,then delete<BR> char tempFileName[200];<BR> sprintf(tempFileName,"%s\\%s",DirName,foundFileName);<BR> DeleteFile(tempFileName);<BR> }<BR> }<BR> }<BR> tempFind.Close();<BR> if(!RemoveDirectory(DirName)) //delete directory<BR> {<BR> return FALSE;<BR> }<BR> return TRUE;<BR>}<BR>真拿你没办法!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:虚空 回复日期:2003-04-01 13:47:10
<br>内容:wowow <BR><BR>请问这句是什么意思啊? <BR><BR>::SetFileAttributes(sFileName, FILE_ATTRIBUTE_ARCHIVE);<BR><BR>麻烦了
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:wowow 回复日期:2003-04-02 08:44:35
<br>内容:改变文件属性
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -