⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_34141.htm

📁 一些关于vc的问答
💻 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>&nbsp;&nbsp;&nbsp;&nbsp;CFileFind filefind;<BR>&nbsp;&nbsp;&nbsp;&nbsp;BOOL bFound=filefind.FindFile(strPath+"\\*.*", 0);<BR>&nbsp;&nbsp;&nbsp;&nbsp;while(bFound)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;bFound=filefind.FindNextFile();<BR>&nbsp;&nbsp;&nbsp;&nbsp;if(filefind.IsArchived()) ::DeleteFile(filefind.GetFilePath());<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;filefind.Close();<BR>&nbsp;&nbsp;&nbsp;&nbsp;::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>&nbsp;&nbsp;&nbsp;&nbsp;CString sPath = sDirectory;<BR>&nbsp;&nbsp;&nbsp;&nbsp;sPath += "\\*.*";<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;CFileFind finder;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CString sFileName;<BR>&nbsp;&nbsp;&nbsp;&nbsp;BOOL bIsFindFile = finder.FindFile(sPath);<BR>&nbsp;&nbsp;&nbsp;&nbsp;while (bIsFindFile)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bIsFindFile = finder.FindNextFile();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (!finder.IsDots())<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sFileName = finder.GetFilePath();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (finder.IsDirectory())<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;::SetFileAttributes(sFileName, FILE_ATTRIBUTE_ARCHIVE);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (!DeleteDirectory(sFileName))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return FALSE;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;::SetFileAttributes(sFileName, FILE_ATTRIBUTE_ARCHIVE);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;::DeleteFile(sFileName);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;finder.Close();<BR>&nbsp;&nbsp;&nbsp;&nbsp;::SetFileAttributes(sDirectory, FILE_ATTRIBUTE_ARCHIVE);<BR>&nbsp;&nbsp;&nbsp;&nbsp;if (!::RemoveDirectory(sDirectory))<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return FALSE;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;&nbsp;&nbsp;&nbsp;CFileFind tempFind; <BR>&nbsp;&nbsp;&nbsp;&nbsp;char tempFileFind[200] ={0};&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;sprintf(tempFileFind,"%s\\*.*",DirName);<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;BOOL IsFinded=(BOOL)tempFind.FindFile(tempFileFind);<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;//find first file<BR>&nbsp;&nbsp;&nbsp;&nbsp;while(IsFinded)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IsFinded=(BOOL)tempFind.FindNextFile();&nbsp;&nbsp;//research the next file in recursion<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!tempFind.IsDots())&nbsp;&nbsp;//if is not "." directory<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char foundFileName[200];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strcpy(foundFileName,tempFind.GetFileName().GetBuffer(200));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(tempFind.IsDirectory())&nbsp;&nbsp;//if it is directory,then do recursion<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//DeleteDirectory<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char tempDir[200];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sprintf(tempDir,"%s\\%s",DirName,foundFileName);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DeleteDirectory(tempDir);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//if it is file,then delete<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char tempFileName[200];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sprintf(tempFileName,"%s\\%s",DirName,foundFileName);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DeleteFile(tempFileName);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;tempFind.Close();<BR>&nbsp;&nbsp;&nbsp;&nbsp;if(!RemoveDirectory(DirName))&nbsp;&nbsp;//delete directory<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return FALSE;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;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 + -