De que se trata o artigo: O artigo apresenta as classes que o .NET framework dispõe para realizarmos o tratamento de arquivos, diretórios do sistema e drives instalados no sistema operacional, utilizando práticas que podem melhorar o desempenho e manter a segurança nas atividades relacionadas a operações IO (entradas e saídas) em aplicações .NET.


Em que situação o tema é útil:
Na grande maioria dos sistemas desenvolvidos, existe a necessidade de trabalharmos com arquivos organizados em diretórios no disco rígido da máquina ou leitura de drives e localização, manipulação e armazenamento de informações. Quando necessitamos manter alguma informação que não seja em bancos de dados relacionais, precisamos manter estas informações organizadas de uma forma que permita a leitura pela aplicação.

Resumo Devman: Neste artigo veremos quais as classes disponíveis no .NET framework que possibilitam a manipulação/edição e exclusão de arquivos físicos e diretórios de sistema em conjunto com as funcionalidades disponíveis pelo sistema operacional. Vamos entender a leitura das informações importantes de arquivos, diretórios e drives como, por exemplo, localização, verificação de propriedades, tamanho, espaço disponível no sistema operacional e monitoramento de alterações.

Trabalhar com arquivos, diretórios e operações de IO é uma tarefa considerada trivial para desenvolvedores. Certamente a grande maioria das aplicações ainda necessita realizar o tratamento de arquivos, diretórios, leitura de imagens, vídeos e outros dados que estão armazenados tanto no disco rígido como em bancos de dados relacionais. A má utilização de comandos para estas operações podem comprometer a estrutura de uma aplicação inteira. Desta forma, para facilitar as operações I/O em aplicações .NET, o .NET framework dispõe de um namespace específico para estas tarefas. Trata-se do namespace System.IO. Com as classes disponibilizadas neste namespace, o desenvolvedor pode manipular diretórios, arquivos e drivers do sistema operacional, além de manipular leitura e reprodução de áudio, vídeo, imagens etc.

Este conjunto de classes são derivadas do tipo FileSystemClass, que nada mais é que um conjunto de classes especializadas em manipulação de informação para arquivos, drivers e diretórios. Além deste conjunto de classes, este namespace disponibiliza uma série de outras classes, que tratam das mais variadas operações de I/O possíveis, como escrita e leitura em arquivos.

A Classe FileSystemInfo

No namespace System.IO temos uma série de classes distintas, sendo cada uma aplicada a um tipo de objeto diferente no sistema operacional.

A classe FileSystemInfo, a princípio, serve apenas como classe base, conforme os princípios da Orientação a Objetos, onde temos uma classe mais generalizada para dar origem à classes mais específicas. Ela foi implementada justamente para que suas classes filhas (especializadas como FileInfo) possuam um conjunto de propriedades e métodos em comum, não sendo necessário reescrever os mesmos métodos em cada classe filha.

Para conhecermos melhor as propriedades e métodos da classe FileSystemInfo, vamos analisar a Tabela 1, onde são listadas as propriedades e a Tabela 2, onde são apresentados os seus métodos.

Tabela 1. Propriedades da classe FileSystemInfo

Propriedade Descrição
Attributes permite manipular informações dos atributos do arquivo ou diretório que está sendo analisado. Atributos são um conjunto de informações utilizadas tanto pelo sistema operacional, aplicações ou até mesmo pelo usuário, para definir comportamentos de arquivo ou diretório. Um exemplo de atributo de um arquivo é o famoso “Somente Leitura”. Para verificar todos os atributos possíveis de um arquivo ou diretório, podemos analisar o enumerador contido no mesmo namespace da classe FileSystemInfo, denominado FileAttributes.
CreationTime permite informar ou ler informação da data em que o arquivo ou diretório foi criado.
Exists tem como único objetivo retornar se o arquivo ou diretório analisado através do endereço informado existe ou não no sistema operacional. Neste caso a propriedade somente retorna valor e não permite ser alimentada (modificada).
Extension retorna a extensão de um arquivo, por exemplo, em arquivo com o nome “File.txt” retornará a extensão txt.
FullName retorna o caminho completo do arquivo ou diretório no sistema operacional, desde o drive inicial até o nome do arquivo ou diretório no sistema.
LastAccessTime informa a data e hora do último acesso de um arquivo ou diretório.
LastWriteTime informa a data e hora da última manipulação de escrita realizada em um arquivo ou diretório no sistema operacional.
Name diferente da FullName, esta propriedade retorna apenas o nome do arquivo ou diretório, sem o caminho ou extensão do mesmo.

Tabela 2. Métodos da classe FileSystemInfo

Método Descrição
Delete responsável por excluir o arquivo ou diretório do sistema operacional.
Refresh atualiza as informações (referente ao armazenamento) do arquivo ou diretório no sistema operacional.

A Classe FileInfo

A classe destinada a fornecer informações de armazenamento de arquivos no sistema operacional é a classe FileInfo. Com ela conseguimos obter, a partir do endereço de um arquivo, a data de criação do arquivo, nome, extensão, atributos etc. Ela possui todos os métodos e propriedades da classe ...

Quer ler esse conteúdo completo? Tenha acesso completo