Comment : déterminer si un répertoire est en lecture seule dans Visual Basic

La méthode GetDirectoryInfo retourne un objet DirectoryInfo avec une propriété Attributes que vous pouvez interroger pour déterminer les informations relatives au répertoire, et notamment si ce dernier est en lecture seule.

Notes

Il est possible que votre ordinateur affiche des noms ou des emplacements différents pour certains des éléments d'interface utilisateur de Visual Studio dans les instructions suivantes. L'édition de Visual Studio dont vous disposez et les paramètres que vous utilisez déterminent ces éléments. Pour plus d'informations, consultez Paramètres Visual Studio.

Pour déterminer si un répertoire est en lecture seule

  1. Utilisez la méthode GetDirectoryInfo pour retourner un objet DirectoryInfo pour le répertoire spécifié. Cet exemple retourne un objet DirectoryInfo pour le répertoire TestDirectory.

    Dim reader As System.IO.DirectoryInfo
    reader = My.Computer.FileSystem.GetDirectoryInfo("C:\testDirectory")
    
  2. Interrogez la propriété Attributes de l'objet pour déterminer s'il est en lecture seule.

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

Exemple

L'exemple suivant qui présente l'extrait de code ci-dessus dans le formulaire complet détermine si le répertoire testDirectory est en lecture seule et indique le résultat dans un message.

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

Compilation du code

Si le répertoire n'existe pas, une exception n'est pas levée tant que vous n'accédez pas à une propriété de l'objet DirectoryInfo.

Programmation fiable

Les conditions ci-dessous peuvent générer une exception.

  • Le chemin d'accès est valide pour une des raisons suivantes : il s'agit d'une chaîne de longueur nulle ; il ne contient que des espaces blancs ; il contient des caractères non valides ; ou il s'agit d'un chemin d'accès de périphérique (commençant par \ \. \) (ArgumentException).

  • Le chemin d'accès n'est pas valide, car il a la valeur Nothing (ArgumentNullException).

  • Le chemin d'accès dépasse la longueur maximale définie par le système (PathTooLongException).

  • Un nom de fichier ou de répertoire du chemin d'accès contient un signe deux-points (:) ou n'a pas un format correct (NotSupportedException).

  • L'utilisateur n'a pas les autorisations nécessaires pour afficher le chemin d'accès (SecurityException).

Voir aussi

Tâches

Comment : déterminer les attributs d'un répertoire dans Visual Basic

Référence

GetDirectoryInfo