如何:在 Visual Basic 中确定目录是否为只读
更新:2007 年 11 月
My.Computer.FileSystem.GetDirectoryInfo 方法方法返回一个带有 Attributes 属性的 DirectoryInfo 对象,可以查询该对象以确定有关目录的信息,包括该目录是否为只读的。
说明: |
---|
对话框中的可用选项以及显示的菜单命令的名称和位置可能会与“帮助”中的描述不同,具体取决于您的当前设置或版本。此帮助页是根据“常规开发设置”而编写的。若要更改设置,请在“工具”菜单上选择“导入和导出设置”。有关更多信息,请参见 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)。