本文介绍了删除目录及其内容(文件,子目录)而不使用FileSystemObject的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想知道是否可以重写这段代码:
I want to know if it's possible to rewrite this piece of code:
Private Sub PrepareDir(ByVal dir As String)
Dim fso As New FileSystemObject
If fso.FolderExists(dir) Then Call fso.DeleteFolder(dir, True)
Call fso.CreateFolder(dir)
End Sub
使用VBA语句:Kill,MkDir等。此处的困难部分 - 删除非空目录。使用FSO可以很容易地完成,但是如果没有FSO就可以做到这一点。
With VBA statements: Kill, MkDir, etc. Most "difficult" part of this - remove non-empty directory. With FSO it can be done easily, but how it can be done without FSO?
推荐答案
这个ccode使用RmDir来删除文件夹。 AFAIK,RmDir不能删除文件夹,除非它是空的,所以我们先清除文件夹中的内容,然后删除目录。
This piece of ccode uses RmDir to remove the Folder. AFAIK, RmDir cannot delete the folder unless it is empty, so we first clear the content in the folder then remove the directory.
Private Sub PrepareDirModified(dirStr As String)
On Error Resume Next
If Right(dirStr, 1) <> "\" Then dirStr = dirStr & "\"
Kill dirStr & "*.*"
RmDir dirStr
MkDir dirStr
On Error GoTo 0
End Sub
希望这有帮助。
这篇关于删除目录及其内容(文件,子目录)而不使用FileSystemObject的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!