我想知道是否可以重写这段代码:
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怎么办呢?
最佳答案
这段ccode使用RmDir删除文件夹。 AFAIK,RmDir不能删除文件夹,除非它为空,所以我们首先清除文件夹中的内容,然后删除目录。
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
希望这可以帮助。
关于excel - 无需使用FileSystemObject即可删除目录及其内容(文件,子目录),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25401789/