删除文件夹及其包含的文件

18

我有一个非常快速的问题。我的程序实际上会下载并将其解压缩到用户的桌面上。但我需要添加一个卸载功能,它基本上是删除多个文件夹和相关文件。我该如何在vb.net中实现这个功能?

4个回答

41
如果你的所有文件夹都包含在一个文件夹中,那么应该非常简单。
Dim path As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\YOURPATH"
System.IO.Directory.Delete(path, True)

这将删除您的根目录以及其下所有目录和文件。如果您的文件和目录不都在一个单独的根目录中(例如示例中的"YOURPATH"),则可以多次调用此命令。这样可以避免逐个删除每个文件。


5
+1 - 由于我从未删除过文件夹,所以没有想到在Directory对象中查找Delete方法。这个答案比我的好。 - Mark Brittingham
只是一个小提示,我现在注意到使用这种方法时,请确保“路径”以 \ 结尾。当我尝试删除没有 \ 的路径时,它无法工作。 - Eric F

3

.NET IO单元有两个命令可以帮助您完成这个技巧:

System.IO.Directory.GetDirectories("C:\\Program Files\\Your Directory\\*.*");
System.IO.Directory.GetFiles("C:\\Program Files\\Your Directory\\*.*");

我将编写一个方法,接受一个目录名称作为参数,并使用“GetFiles”例程获取所有文件并在foreach循环中使用System.IO.File.Delete(path)删除它们。 然后,在GetDirectories()命令的结果上运行foreach循环,递归调用该函数。
更新:Steve Danner指出System.IO.Directory命名空间有一个Delete方法,因此您不需要执行我在这里讨论的循环。 他的答案是正确的,应该得到投票。 我的回答现在更多是好奇心(尽管感谢给我投票的人)。

1

你正在寻找DirectoryInfo,可以像这样使用:

Dim di As New IO.DirectoryInfo(path)
di.Delete(True)

-3
Dim path As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\YOURPATH"
System.IO.Directory.Delete(path, True)

2
添加一些描述会让你的答案更加美味 - Renjith K N

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接