Compartilhar via


Noções básicas de E/S de Arquivo do .NET Framework e o Sistema de Arquivos (Visual Basic)

As classes no System.IO namespace 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 membros estáticos ou compartilhados, você pode usá-los diretamente sem criar uma instância da classe primeiro. Associadas a essas classes estão as classes FileInfo e DirectoryInfo, que serão familiares aos usuários do recurso My. Para usar essas classes, você deve especificar completamente os nomes ou importar os namespaces apropriados, incluindo a instrução Imports no início do código afetado. Para obter mais informações, consulte Instrução Imports (tipo e namespace .NET).

Observação

Outros tópicos nesta seção usam o My.Computer.FileSystem objeto em vez de System.IO classes para trabalhar com unidades, arquivos e diretórios. O My.Computer.FileSystem objeto destina-se principalmente ao uso em programas do Visual Basic. System.IO as classes são destinadas a uso por qualquer linguagem que dê suporte ao .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 onde o cursor indica a posição atual no fluxo.

O cursor mostra a posição atual no fluxo de arquivos.

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 de um fluxo, transferindo dados do fluxo para uma estrutura de dados, como uma cadeia de caracteres ou uma matriz de bytes.

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

  • Buscando. 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 Stream classe, que forma a classe abstrata para todos os outros fluxos. Você não pode criar diretamente uma instância da Stream classe, mas deve usar uma das classes que ela implementa.

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

A tabela a seguir lista tarefas normalmente realizadas com um fluxo:

Para Veja
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
Escrever caracteres em uma string Como gravar caracteres em uma cadeia de caracteres
Criptografar dados Criptografando dados
Descriptografar dados Descriptografar 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 um novo FileStream, a FileMode enumeração permite especificar se o arquivo é aberto para anexação, se um novo arquivo é criado se o arquivo especificado não existe, se o arquivo é substituído e assim por diante.

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

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

Para Veja
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

O controle do acesso a arquivos e diretórios pode ser feito com a FileIOPermission classe. Isso pode ser particularmente 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 chamada ASPNET, que é criada como parte das instalações do ASP.NET e do .NET Framework. Quando esse aplicativo solicita acesso a um recurso, a conta de usuário do ASPNET tem permissões limitadas, o que pode impedir que o usuário execute ações como gravar em um arquivo de um aplicativo Web. Para obter mais informações, consulte FileIOPermission.

Armazenamento de Arquivos Isolado

O armazenamento isolado é uma tentativa de resolver problemas criados ao trabalhar com arquivos em que o usuário ou o 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 um 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, dentro de um repositório, você pode criar e manipular diretórios e arquivos.

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

Para Veja
Criar um repositório isolado Como obter repositórios para armazenamento isolado
Enumerar lojas isoladas Como enumerar repositórios para armazenamento isolado
Excluir uma loja isolada 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 FileSystemWatcher componente permite que você observe as alterações em arquivos e diretórios em seu sistema ou em qualquer computador ao qual você tenha acesso à rede. Por exemplo, se um arquivo for modificado, convém enviar a um usuário um alerta de que a alteração ocorreu. Quando ocorrem alterações, um ou mais eventos são gerados, armazenados em um buffer e entregues ao FileSystemWatcher componente para processamento.

Consulte também