如何:在 Visual Basic 中删除目录
更新:2007 年 11 月
使用 My.Computer.FileSystem 对象的 DeleteDirectory 方法来删除目录。可选择的选项包括:是否删除目录的内容、是否将删除的目录发送到“回收站”,以及是否显示删除进度。
仅删除空目录
使用 DeleteDirectory 方法并将 onDirectoryNotEmpty 指定为 False 来删除目录。此示例仅在名为 OldDirectory 的目录为空时将其删除。
My.Computer.FileSystem.DeleteDirectory("C:\OldDirectory", _ FileIO.DeleteDirectoryOption.ThrowIfDirectoryNonEmpty)
删除目录并将其发送到回收站
使用 DeleteDirectory 方法并将 recycle 指定为 RecycleOption.SendToRecycleBin 来删除目录。此示例删除名为 OldDirectory 的目录及其所有内容,并将它们发送到“回收站”,同时显示操作进度。
My.Computer.FileSystem.DeleteDirectory("C:\OldDirectory", FileIO.UIOption.AllDialogs, FileIO.RecycleOption.SendToRecycleBin)
可靠编程
以下情况可能会导致异常:
路径是零长度字符串、格式不正确、仅包含空白,或者包含无效字符(包括通配符)(ArgumentException)。
路径是设备路径(以 \\.\ 开头)(ArgumentException)。
路径为 Nothing (ArgumentNullException)。
目录不存在,或者目录是一个文件 (DirectoryNotFoundException)。
用户没有删除目录或子目录的权限 (IOException)。
目录或子目录中的某个文件正在使用 (IOException)。
文件名或目录名包含冒号 (:) (NotSupportedException)。
OnUserCancel 设置为 ThrowException,并且用户取消了该操作 (OperationCanceledException)。
OnUserCancel 设置为 ThrowException,并且目录无法删除 (OperationCanceledException)。
路径超过了系统定义的最大长度 (PathTooLongException)。
showUI 设置为 AllDialogs,并且用户没有必要的权限 (UnauthorizedAccessException)。