如何:在 Visual Basic 中确定目录是否为只读
GetDirectoryInfo 方法返回一个带有 Attributes 属性的 DirectoryInfo 对象,可以查询该对象以确定有关目录的信息,包括该目录是否为只读的。
提示
对于在以下说明中使用的某些 Visual Studio 用户界面元素,您的计算机可能会显示不同的名称或位置。这些元素取决于您所使用的 Visual Studio 版本和您所使用的设置。有关更多信息,请参见 Visual Studio 设置。
确定目录是否为只读的
使用 GetDirectoryInfo 方法返回指定目录的 DirectoryInfo 对象。 此示例返回目录 TestDirectory 的 DirectoryInfo 对象。
Dim reader As System.IO.DirectoryInfo reader = My.Computer.FileSystem.GetDirectoryInfo("C:\testDirectory")
查询对象的 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)。