【发布时间】:2020-05-28 20:49:09
【问题描述】:
我找不到我的问题的解决方案。我的代码正在删除空文件夹,并且通常工作正常,但有一个例外。它遍历每条路径一次,但是如果有一个文件夹(A),其中只有一个空文件夹(B),那么它只会删除文件夹(B),因为文件夹(A)当时不是空的.我怎样才能让它知道一旦文件夹(B)被删除,文件夹(A)将是空的?
我认为DeleteEmptyFolder(folder.FullName) 会解决问题,但它不起作用,因为它不会重复它已经经历过的相同路径。删除directory.GetDirectories.Count = 0 也不起作用,因为它会删除任何其中没有文件的文件夹(即使有另一个文件夹中有文件)
Private Sub DeleteEmptyFolder(ByVal sDirectoryPath As String)
If IO.Directory.Exists(sDirectoryPath) Then
Dim directory As New IO.DirectoryInfo(sDirectoryPath)
If directory.GetDirectories.Count = 0 AndAlso directory.GetFiles.Count = 0 Then
directory.Delete(True)
Return
End If
For Each folder As IO.DirectoryInfo In directory.GetDirectories()
DeleteEmptyFolder(folder.FullName)
Next
End If
End Sub
我对 VB.Net 还很陌生,如果这是我看不到的明显答案,请原谅。
【问题讨论】:
-
让我更了解你的最终目标。您想将文件夹路径传递给您的函数,它会搜索所有文件夹和子文件夹并删除空文件夹,最后如果主文件夹不包含任何内容,也会自行删除。我说的对吗?
-
它基本上应该删除所有空文件夹,包括在此过程中变空的文件夹
标签: vb.net