Share via


Noções básicas de E/S de arquivo do .NET Framework e o sistema de arquivos (Visual Basic)

As classes no namespace System.IO são usadas para trabalhar com unidades, arquivos e diretórios.

O namespace System.IO contém as classes File e Directory, que fornecem a funcionalidade do .NET Framework que manipula arquivos e diretórios. Como os métodos desses objetos são estáticos ou membros compartilhados, você pode usá-los diretamente sem antes criar uma instância da classe. Associadas a essas classes estão as classes FileInfo e DirectoryInfo, conhecidas pelos usuários do recurso My. Para usar essas classes, você deve qualificar totalmente os nomes ou importar os namespaces apropriados, incluindo as declarações Imports no início do código afetado. Para obter mais informações, consulte Instrução Imports (tipo e namespace .NET).

Observação

Os outros tópicos nesta seção usam o objeto My.Computer.FileSystem, em vez das classes System.IO, para trabalhar com unidades, arquivos e diretórios. O objeto My.Computer.FileSystem destina-se principalmente a ser usado em programas do Visual Basic. As classes System.IO destinam-se a serem usadas por qualquer linguagem compatível com o .NET Framework, incluindo o Visual Basic.

Definição de um fluxo

O .NET Framework usa fluxos para dar suporte à leitura e gravação em arquivos. Você pode pensar em um fluxo como um conjunto unidimensional de dados contíguos, que tem um início e um fim e um local em que o cursor indica a posição atual no fluxo.

Cursor shows current position in the filestream.

Operações de fluxo

Os dados contidos no fluxo podem vir da memória, de um arquivo ou de um soquete TCP/IP. Os fluxos têm operações fundamentais que podem ser aplicadas a eles:

  • Leitura. Você pode ler em um fluxo, transferindo dados do fluxo para uma estrutura de dados, como uma cadeia de caracteres ou uma matriz de bytes.

  • Gravação. Você pode gravar em um fluxo, transferindo dados de uma fonte de dados para o fluxo.

  • Busca. Você pode consultar e modificar a sua posição no fluxo.

Para obter mais informações, consulte Compondo fluxos.

Tipos de fluxos

No .NET Framework, um fluxo é representado pela classe Stream, que forma a classe abstrata para todos os outros fluxos. Você não pode criar diretamente uma instância da classe Stream, mas deve usar uma das classes que ela implementa.

Há muitos tipos de fluxos, porém, com a finalidade de trabalhar com entrada/saída (E/S) de arquivos, os tipos mais importantes são a classe FileStream, que fornece uma maneira de ler e gravar arquivos, e a classe IsolatedStorageFileStream, que fornece uma maneira de criar arquivos e diretórios em armazenamento isolado. Outros fluxos que podem ser usados ao trabalhar com E/S de arquivo incluem:

A tabela a seguir lista as tarefas comumente realizadas com um fluxo:

Para Consulte
Ler e gravar em um arquivo de dados Como ler e gravar em um arquivo de dados recém-criado
Ler texto de um arquivo Como ler texto de um arquivo
Gravar texto em um arquivo Como gravar texto em um arquivo
Ler caracteres de uma cadeia de caracteres Como: Ler caracteres de uma cadeia de caracteres
Gravar caracteres em uma cadeia de caracteres Como: Gravar caracteres em uma cadeia de caracteres
Criptografar dados Criptografando dados
Descriptografar dados Descriptografando dados

Acesso a arquivos e atributos

Você pode controlar como os arquivos são criados, abertos e compartilhados com as enumerações FileAccess, FileMode e FileShare, que contêm os sinalizadores usados pelos construtores da classe FileStream. Por exemplo, quando você abre ou cria uma nova FileStream, a enumeração FileMode permite especificar se o arquivo está aberto para acréscimos, se um novo arquivo será criado caso o arquivo especificado não exista, se o arquivo será substituído e assim por diante.

A enumeração FileAttributes habilita a coleta de informações específicas do arquivo. A enumeração FileAttributes retorna os atributos armazenados do arquivo, por exemplo, se ele é compactado, criptografado, oculto, somente leitura, um arquivo, um diretório, um arquivo de sistema ou um arquivo temporário.

A tabela a seguir lista as tarefas que envolvem o acesso a arquivos e atributos de arquivo:

Para Consulte
Abrir e acrescentar texto a um arquivo de log Como abrir e acrescentar a um arquivo de log
Determinar os atributos de um arquivo FileAttributes

Permissões de arquivo

É possível controlar o acesso a arquivos e diretórios com a classe FileIOPermission. Isso pode ser especialmente importante para desenvolvedores que trabalham com Web Forms, que, por padrão, são executados no contexto de uma conta de usuário local especial denominada ASPNET, que é criada como parte das instalações do ASP.NET e do .NET Framework. Quando esse tipo de aplicativo solicita acesso a um recurso, a conta de usuário ASPNET tem permissões limitadas, que podem impedir que o usuário realize ações como gravar em um arquivo de um aplicativo Web. Para obter mais informações, consulte FileIOPermission.

Armazenamento isolado de arquivo

O armazenamento isolado é uma tentativa de resolver problemas criados ao trabalhar com arquivos em que o usuário ou código pode não ter as permissões necessárias. O armazenamento isolado atribui a cada usuário um compartimento de dados, que pode conter uma ou mais repositórios. Os repositórios podem ser isolados uns dos outros, por usuário e por assembly. Somente o usuário e o assembly que criou um repositório tem acesso a ele. Um repositório atua como um sistema de arquivos virtual completo. Você pode criar e manipular pastas e arquivos em um repositório.

A tabela a seguir lista as tarefas comumente associadas ao armazenamento isolado de arquivo.

Para Consulte
Criar um repositório isolado Como: Obter repositórios para o armazenamento isolado
Enumerar repositórios isolados Como: Enumerar repositórios para o armazenamento isolado
Excluir um repositório isolado Como: Excluir repositórios no armazenamento isolado
Criar um arquivo ou diretório no armazenamento isolado Como: Criar arquivos e diretórios no armazenamento isolado
Localizar um arquivo no armazenamento isolado Como: Localizar arquivos e diretórios existentes no armazenamento isolado
Ler ou gravar em um arquivo no armazenamento isolado Como: Ler e gravar em arquivos no armazenamento isolado
Excluir um arquivo ou diretório no armazenamento isolado Como: Excluir arquivos e diretórios no armazenamento isolado

Eventos de arquivo

O componente FileSystemWatcher permite observar alterações em arquivos e diretórios em seu sistema ou em qualquer computador em que você tem acesso à rede. Por exemplo, se um arquivo é modificado, convém enviar a um usuário um alerta sobre a alteração ocorrida. Quando ocorrem alterações, um ou mais eventos são acionados, armazenados em um buffer e enviados ao componente FileSystemWatcher para processamento.

Confira também