Noções Básicas de E/S em Arquivos do .NET Framework e o Sistema de Arquivos
O namespace System.IO contém as classes File e Directory, que fornecem a funcionalidades do .NET Framework que manipulam arquivos e diretórios.Como os métodos desses objetos são estáticos ou membros compartilhados, você pode usá-los diretamente sem criar uma instância da classe primeiro.Associado com essas classes são as classes FileInfo e DirectoryInfo , que serão familiares aos 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 Declaração Imports (Tipo e Namespace .NET).
Definição de um Fluxo
O .NET Framework usa fluxos para oferecer suporte à leitura e gravação em arquivos.Você pode pensar um fluxo como um conjunto unidimensional de dados contíguos, que tem início e fim, e onde o cursor indica a posição atual no fluxo.
Operações no Fluxo
Os dados contidos no fluxo podem vir da memória, de um arquivo, ou de um soquete TCP/IP.Fluxos têm operações fundamentais que podem ser aplicadas a eles:
Leitura.Você pode ler a partir de um fluxo, transferindo dados de fluxo em uma estrutura de dados, como uma sequência ou uma matriz de bytes.
Gravação.Você pode gravar em um fluxo, transferindo dados de uma fonte de dados para o fluxo.
Procurar.Você pode consultar e modificar 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, mas para fins de trabalhar com arquivos entrada/saída (E/S), 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 pastas em armazenamento isolado.Outros fluxos que podem ser usados no trabalho de E/S em arquivo incluem:
A tabela a seguir lista as tarefas normalmente efetuadas com um fluxo:
Para |
Consulte |
---|---|
Ler e gravar em um arquivo de dados |
|
Ler um arquivo XML |
|
Criar um gravador de fluxo para gravar texto em um arquivo |
|
Ler texto de um arquivo |
|
Gravar texto em um arquivo |
|
Ler caracteres uma sequência |
|
Gravar caracteres em uma sequência |
|
Criptografar dados |
|
Descriptografar dados |
Acesso e Atributos de Arquivo
Você pode controlar como os arquivos são criados, aberto e compartilhada com as enumerações FileAccess,FileMode e FileShare, que contêm os sinalizadores usados pelos construtores de classe FileStream.Por exemplo, quando você abre ou cria um novo FileStream, a enumeração FileMode permite que você especifique se o arquivo é aberto para acrescentar, se um novo arquivo for criado se o arquivo especificado não existir, se o arquivo esta substituído e assim por diante.
A enumeração FileAttributes habilita a coleta de informações de específicas do arquivo.A enumeração FileAttributes retorna os atributos armazenados do arquivo, tais como se ele está compactado, criptografado, oculto, somente para leitura, um arquivo, um diretório, um arquivo de sistema, ou um arquivo temporário.
A tabela a seguir lista tarefas envolvendo acesso ao arquivo e atributos de arquivo:
Para |
Consulte |
---|---|
Abrir e acrescentar texto em um arquivo de log |
|
Determinar os atributos de um arquivo |
Permissões de Arquivo
Controle do acesso a arquivos e pastas pode ser feito com a classe FileIOPermission.Isso pode ser especialmente importante para os desenvolvedores trabalhando com Web Forms, que por padrão executam dentro do contexto de uma conta de usuário local especial denominada ASPNET, que é criado como parte das instalações de ASP.NET e .NET Framework.Quando tal aplicativo solicita acesso a um recurso, a conta de usuário ASPNET tem permissões restritas, que podem impedir que o usuário execute ações como gravar em um arquivo de um aplicativo da Web.Para obter mais informações, consulte Permissões de segurança, Solicitando permissões e a FileIOPermission Class.
A tabela a seguir lista tarefas envolvendo permissões de arquivo.
Para |
Consulte |
---|---|
Solicitar permissões mínimas |
Como: Solicitar Permissão para Acessar Código Não-Gerenciado |
Solicitar permissões opcionais |
Como: Solicitar permissões opcionais usando o sinalizador RequestOptional |
Recusar permissões |
|
Solicitar permissões internas |
Como: Solicitar Permissão para um Conjunto de Permissões Nomeadas |
Solicitar permissões codificadas em XML |
Armazenamento Isolado de Arquivo
Armazenamento isolado é uma tentativa de resolver problemas criados quando trabalha-se com arquivos onde o usuário ou código podem carecer de permissões necessárias.Armazenamento isolado atribui a cada usuário um compartimento de dados, que pode conter um ou mais armazenamentos.Os armazenamentos podem ser isolados entre si por usuário e por assembly.Somente o usuário e o assembly que criou um armazenamento têm acesso a ele.Um armazenamento atua como um completo sistema de arquivos virtuais — em um armazenamento você pode criar e manipular diretórios e arquivos.
A tabela a seguir lista as tarefas comumente associadas ao armazenamento isolado de arquivo.
Para |
Consulte |
---|---|
Criar um armazenamento isolado |
|
Enumerar armazenamentos isolados |
|
Excluir um armazenamento isolado |
|
Criar um arquivo ou diretório no armazenamento isolado |
|
Localizar um arquivo no armazenamento isolado |
Como: Localizar arquivos existentes e diretórios em armazenamento isolado |
Ler ou gravar em um arquivo no armazenamento isolado |
|
Excluir um arquivo ou diretório no armazenamento isolado |
Eventos de Arquivo
O componente FileSystemWatcher permite-lhe observar alterações em arquivos e pastas em seu sistema ou em qualquer computador ao qual você tenha acesso pela rede.Por exemplo, se um arquivo for modificado, você pode desejar enviar ao usuário um alerta avisando que a alteração ocorreu.Quando ocorrem alterações, um ou mais eventos são gerados, armazenados em um buffer e enviados para o componente FileSystemWatcher para processamento.Para obter mais informações, consulte Respondendo aos eventos do sistema de arquivos.
Para |
Consulte |
---|---|
Criar um manipulador para eventos do sistema de arquivos |
Como: Criar manipuladores para eventos de sistema de arquivos |
Configurar uma instância do componente FileSystemWatcher |
Consulte também
Conceitos
Classes Usadas na E/S de Arquivos no .NET Framework e o Sistema de Arquivos