Удалить каталог и его содержимое (файлы, подкаталоги) без использования FileSystemObject
4 Eldar Agalarov [2014-08-20 12:55:00]
Я хочу знать, можно ли переписать этот фрагмент кода:
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?
vba excel-vba filesystemobject
1 ответ
6 Решение PaulFrancis [2014-08-20 13:47:00]
Этот фрагмент кода использует 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
Надеюсь, что это поможет.