This documentation is archived and is not being maintained.

How to: Determine if a Directory is Read-Only in Visual Basic 

The My.Computer.FileSystem.GetDirectoryInfo Method method returns a DirectoryInfo object with a Attributes property that can be queried to determine information about the directory, including whether it is read-only.

NoteNote

  The options available in dialog boxes, and the names and locations of menu commands you see, might differ from what is described in Help, depending on your active settings or edition. This Help page was written with General Development Settings in mind. To change your settings, choose Import and Export Settings on the Tools menu. For more information, see Visual Studio Settings.

To determine if a directory is read-only

  1. Use the GetDirectoryInfo method to return a DirectoryInfo object for the specified directory. This example returns a DirectoryInfo object for the directory TestDirectory.

    Dim reader As System.IO.DirectoryInfo
    reader = My.Computer.FileSystem.GetDirectoryInfo("C:\testDirectory")
    
    
  2. Query the Attributes property of the object to determine whether it is read-only.

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

Example

The following example, which presents the above snippet in complete form, determines whether the directory testDirectory is read-only and reports the result in a message box.

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

Compiling the Code

If the directory does not exist, an exception is not thrown until the first time a property on the DirectoryInfo object is accessed.

Robust Programming

The following conditions may cause an exception:

  • The path is not valid for one of the following reasons: it is a zero-length string; it contains only white space; it contains invalid characters; or it is a device path (starts with \\.\) (ArgumentException).

  • The path is not valid because it is Nothing (ArgumentNullException).

  • The path exceeds the system-defined maximum length (PathTooLongException).

  • A file or directory name in the path contains a colon (:) or is in an invalid format (NotSupportedException).

  • The user lacks necessary permissions to view the path (SecurityException).

See Also

Show: