Como: Determinar se um diretório é somente leitura em Visual Basic

O método GetDirectoryInfo retorna um objeto DirectoryInfo com uma propriedade Attributes que pode ser consultada para determinar informações sobre o diretório, inclusive se ele é somente leitura.

ObservaçãoObservação

Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos da interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Configurações do Visual Studio.

Para determinar se um Diretório é somente leitura

  1. Use o método GetDirectoryInfo para retornar um objeto DirectoryInfo para o diretório especificado. Este exemplo retorna um objeto DirectoryInfo para o diretório TestDirectory.

    Dim reader As System.IO.DirectoryInfo
    reader = My.Computer.FileSystem.GetDirectoryInfo("C:\testDirectory")
    
  2. Consulte a propriedade Attributes do objeto para determinar se ele é somente leitura.

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

Exemplo

O exemplo a seguir, que apresenta o trecho acima no formulário concluído, determina se o diretório testDirectory é somente leitura e relata o resultado em uma caixa de mensagem.

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

Compilando o código

Se o diretório não existe, uma exceção não é lançada até que uma propriedade no objeto DirectoryInfo seja acessada.

Programação robusta

As seguintes condições podem causar uma exceção:

  • O caminho não é válido para um dos seguintes motivos: ela é uma seqüência de comprimento zero; ele contém somente espaços em branco; ele contém caracteres inválidos; ou é um caminho de dispositivo (começa com \ \. \) (ArgumentException).

  • O caminho não é válido porque ele é Nothing (ArgumentNullException).

  • O caminho excede o comprimento máximo definido pelo sistema (PathTooLongException).

  • Um nome de arquivo ou de diretório no caminho contém dois-pontos (:) ou está em um formato inválido (NotSupportedException).

  • O usuário não possui permissões necessárias para exibir o caminho (SecurityException).

Consulte também

Tarefas

Como: Determinar os atributos do diretório Visual Basic

Referência

GetDirectoryInfo