我有一个"I:\mydir"
文件夹,它是read only
。执行以下代码时:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim subPath = "I:\mydir"
Try
Directory.CreateDirectory(subPath)
Directory.Delete(subPath)
Dim directoryExists = Directory.Exists("I:\mydir")
Dim subDirectoryExists = Directory.Exists(subPath)
Console.WriteLine("top-level directory exists: " & directoryExists)
Console.WriteLine("sub-directory exists: " & subDirectoryExists)
Catch ex As Exception
Console.WriteLine("The process failed: {0}", ex.Message)
End Try
End Sub
删除目录时不会询问任何确认消息("您确定要将此文件夹移动到回收站吗?")。
然后我拒绝了该文件夹的所有访问权限并再次执行相同的代码。但这一次没有被删除。并抛出异常"access is denied"
。
那么,为什么在删除普通目录和只读目录之前没有显示任何确认消息?
答案 0 :(得分:2)
你正在做的是通过System.IO删除,如果你愿意,它需要你做这种类型的东西。您正在寻找的是My.Computer.FileSystem命名空间。此示例将文件发送到回收站并进行确认。
My.Computer.FileSystem.DeleteFile("C:\temp\TestDelete.txt", FileIO.UIOption.AllDialogs, FileIO.RecycleOption.SendToRecycleBin)