为什么Windows在删除只读文件夹时不显示确认?

时间:2014-08-01 18:43:14

标签: vb.net directory

我有一个"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"

那么,为什么在删除普通目录和只读目录之前没有显示任何确认消息?

1 个答案:

答案 0 :(得分:2)

你正在做的是通过System.IO删除,如果你愿意,它需要你做这种类型的东西。您正在寻找的是My.Computer.FileSystem命名空间。此示例将文件发送到回收站并进行确认。

My.Computer.FileSystem.DeleteFile("C:\temp\TestDelete.txt", FileIO.UIOption.AllDialogs, FileIO.RecycleOption.SendToRecycleBin)