Partilhar via


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

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

O System.IO namespace contém as classes File e Directory, que fornecem a funcionalidade do .NET Framework que manipula ficheiros 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 FileInfo e DirectoryInfo, que são familiares aos utilizadores do recurso My. Para utilizar estas classes, deve qualificar totalmente os seus nomes ou importar os espaços de nomes apropriados, incluindo a(s) instrução(ões) Imports no início do código afetado. Para obter mais informações, consulte Imports Statement (.NET Namespace and Type).

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 para uso em programas Visual Basic. System.IO classes destinam-se ao uso por qualquer linguagem que ofereça suporte ao .NET Framework, incluindo o Visual Basic.

Definição de um fluxo

O .NET Framework usa fluxos para oferecer 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, um arquivo ou um soquete TCP/IP. Os fluxos têm operações fundamentais que podem ser aplicadas a eles:

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

  • Redação. Você pode gravar num fluxo, transferindo dados de uma fonte de dados para o fluxo.

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

Para obter mais informações, consulte Composing Streams.

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.

Existem muitos tipos de fluxos, mas para fins de trabalho com entrada/saída de arquivos (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 em armazenamento isolado. Outros fluxos que podem ser usados ao trabalhar com E/S de arquivo incluem:

A tabela a seguir lista as 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 ficheiro 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 numa string Como: Gravar caracteres em uma cadeia de caracteres
Encriptar dados Criptografando dados
Desencriptar dados Desencriptação de 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, um diretório, um arquivo de sistema ou um arquivo temporário.

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

Para Veja
Abrir e acrescentar texto a um ficheiro de registo Como: Abrir e anexar a um arquivo de log
Determinar os atributos de um arquivo FileAttributes

Permissões de arquivo

O controle de 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 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 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 armazenamentos. As lojas podem ser isoladas umas das outras por usuário e por montagem. Somente o utilizador e o conjunto que criaram uma loja têm acesso a ela. Uma loja atua como um sistema de arquivos virtual completo — dentro de uma loja você pode criar e manipular diretórios e arquivos.

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

Para Veja
Criar uma loja isolada Como obter lojas para armazenamento isolado
Enumerar lojas isoladas Como: enumerar armazenamentos para armazenamento isolado
Eliminar uma loja isolada Como: Excluir armazenamentos em armazenamento isolado
Criar um arquivo ou diretório em armazenamento isolado Como: Criar arquivos e diretórios em armazenamento isolado
Localizar um ficheiro em armazenamento isolado Como: Localizar arquivos e diretórios existentes no armazenamento isolado
Ler ou gravar em um arquivo em armazenamento isolado Como: Ler e gravar em arquivos em 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, talvez você queira 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.

Ver também