如何:在 Visual Basic 中确定目录是否为只读

GetDirectoryInfo 方法返回一个带有 Attributes 属性的 DirectoryInfo 对象,可以查询该对象以确定有关目录的信息,包括该目录是否为只读的。

提示

对于在以下说明中使用的某些 Visual Studio 用户界面元素,您的计算机可能会显示不同的名称或位置。这些元素取决于您所使用的 Visual Studio 版本和您所使用的设置。有关更多信息,请参见 Visual Studio 设置

确定目录是否为只读的

  1. 使用 GetDirectoryInfo 方法返回指定目录的 DirectoryInfo 对象。 此示例返回目录 TestDirectory 的 DirectoryInfo 对象。

    Dim reader As System.IO.DirectoryInfo
    reader = My.Computer.FileSystem.GetDirectoryInfo("C:\testDirectory")
    
  2. 查询对象的 Attributes 特性,确定它是否为只读。

    If (reader.Attributes And System.IO.FileAttributes.ReadOnly) > 0 Then
        MsgBox("Directory is readonly!")
    End If
    

示例

下面的示例以完整的形式显示上面的代码段,确定目录 testDirectory 是否为只读的,并将结果报告在消息框中。

Dim reader As System.IO.DirectoryInfo
reader = My.Computer.FileSystem.GetDirectoryInfo("C:\testDirectory")
If (reader.Attributes And System.IO.FileAttributes.ReadOnly) > 0 Then
    MsgBox("File is readonly!")
End If

编译代码

如果该目录不存在,则直至 DirectoryInfo 对象上的属性首次被访问时才会引发异常。

可靠编程

以下情况可能会导致异常:

  • 路径无效,由于下列原因之一: 它是零长度字符串 ; 它仅包含空白 ; 它包含无效字符 ; 或它是一个设备路径 (以开始 \\。 \) (ArgumentException).

  • 路径无效,因为它是 Nothing (ArgumentNullException)。

  • 路径超过了系统定义的最大长度 (PathTooLongException)。

  • 路径中的文件名或目录名包含冒号 (:),或格式无效 (NotSupportedException)。

  • 该用户缺少查看该路径所必需的权限 (SecurityException)。

请参见

任务

如何:在 Visual Basic 中确定目录的特性

参考

GetDirectoryInfo