Manipulação de arquivos em C#: E/S Operações [Exemplos]
C# possui uma ampla variedade de operações de arquivo. Essas operações incluem abrir um arquivo, ler ou gravar em um arquivo. Pode haver casos em que você deseja trabalhar diretamente com arquivos; nesse caso, você usaria as operações de arquivo disponíveis em C#. Algumas das operações básicas de arquivo são mencionadas abaixo.
- Leitura – Esta operação é a operação básica de leitura em que os dados são lidos de um arquivo.
- Escrita – Esta operação é a operação básica de gravação em que os dados são gravados em um arquivo. Por padrão, todo o conteúdo existente é removido do arquivo e um novo conteúdo é gravado.
- Anexar – Esta operação também envolve gravar informações em um arquivo. A única diferença é que os dados existentes em um arquivo não são substituídos. Os novos dados a serem gravados são adicionados no final do arquivo.
Comandos básicos de E/S
C# e .Net podem trabalhar com arquivos com a ajuda de vários comandos de E/S de arquivo. Vamos dar uma olhada em alguns desses comandos. Para nosso exemplo, assumiremos que temos um arquivo na unidade D chamado Exemplo.txt.
O arquivo será um arquivo de texto simples e terá 2 linhas conforme mostrado abaixo
- Guru99 – .Net
- Guru99 -C#
Para nosso exemplo, criaremos um aplicativo de console simples e trabalharemos com nossos comandos de E/S de arquivo. O aplicativo de console é o básico criado no tutorial anterior. No aplicativo de console, todo o código é gravado no arquivo program.cs.
O arquivo existe
O método Arquivo existe é usado para verificar se um arquivo específico existe. Agora vamos ver o código que pode ser usado para verificar se nosso arquivo Exemplo.txt existe ou não. Insira o código abaixo no arquivo program.cs.
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Tutorial { static void Main(string[] args) { String path = @"D:\Example.txt"; if (File.Exists(path)) { Console.WriteLine("File Exists"); } Console.ReadKey(); } } }
Explicação do código: -
- Primeiro, estamos definindo uma variável string com o caminho para nosso arquivo Exemplo.txt.
- A seguir, usamos o método File.Exists para verificar se o arquivo existe ou não. Se o arquivo existir, um valor verdadeiro será retornado.
- Se obtivermos um valor verdadeiro e o arquivo existir, então escrevemos a mensagem “Arquivo Existe” no console.
Quando o código acima for definido e o projeto for executado usando o Visual Studio, você obterá a saída abaixo.
Resultado:-
Na saída acima, você pode ver que o comando File.Exists foi executado com sucesso e a mensagem correta foi exibida na janela do console.
Arquivo.ReadAlllines
O método é usado para ler todas as linhas, uma por uma, em um arquivo. As linhas são então armazenadas em uma variável de array de string. Vejamos um exemplo. Insira o código abaixo no arquivo program.cs.
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Tutorial { static void Main(string[] args) { String path = @"D:\Example.txt"; String[] lines; lines = File.ReadAllLines(path); Console.WriteLine(lines[0]); Console.WriteLine(lines[1]); Console.ReadKey(); } } }
Explicação do código: -
- Primeiro, estamos declarando uma variável de array de string. Será utilizado para armazenar o resultado que será retornado pelo método File.ReadAllLines.
- A seguir, usamos o método File.ReadAllLines para ler todas as linhas do nosso arquivo de texto. O resultado é então passado para a variável de linhas.
- Como sabemos que nosso arquivo contém apenas 2 linhas, podemos acessar o valor das variáveis do array através dos comandos linhas[0] e linhas[1].
Quando o código acima é definido e o projeto é executado usando Visual Studio, você obterá a saída abaixo.
Resultado:-
Na saída, você pode ver que o comando File.ReadAllLines retornou ambas as linhas do nosso arquivo Exemplo.txt
Arquivo.ReadAllText
Este método é usado para ler todas as linhas de um arquivo de uma vez. As linhas são então armazenadas em uma variável de string. Vejamos um exemplo. Insira o código abaixo no arquivo program.cs.
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Tutorial { static void Main(string[] args) { String path = @"D:\Example.txt"; String lines; lines = File.ReadAllText(path); Console.WriteLine(lines); Console.ReadKey(); } } }
Explicação do código: -
- Primeiro, estamos declarando uma variável string chamada Lines. Será utilizado para armazenar o resultado que será retornado pelo método File.ReadAllText.
- A seguir, usamos o método File.ReadAllText para ler todas as linhas do nosso arquivo de texto. O resultado é então passado para a variável de linhas.
- Podemos usar diretamente o método Console.Writeline para exibir o valor da variável Lines.
Quando o código acima for definido e o projeto for executado usando o Visual Studio, você obterá a saída abaixo.
Resultado:-
Na saída, você pode ver que o comando File.ReadAlltext retornou ambas as linhas do nosso arquivo Exemplo.txt
Arquivo.Copiar
O método é usado para fazer uma cópia de um arquivo existente. Vejamos um exemplo. Insira o código abaixo no arquivo program.cs.
using System; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Tutorial { static void Main(string[] args) { String path = @"D:\Example.txt"; String copypath = @"D:\ExampleNew.txt"; File.Copy(path,copypath); Console.ReadKey(); } } }
Explicação do código: -
- Primeiro, estamos declarando uma variável string chamada path. Este será o local do nosso arquivo Exemplo.txt. Este arquivo será o arquivo de origem usado para a operação de cópia.
- A seguir, estamos declarando uma variável string chamada copypath. Este será o local de um novo arquivo chamado arquivo ExampleNew.txt. Este será o arquivo de destino no qual o conteúdo será gravado a partir do arquivo de origem Exemplo.txt.
- Em seguida, chamamos o método File.Copy para copiar o arquivo Exemplo.txt para o arquivo ExemploNovo.txt.
Quando o código acima for definido e o projeto for executado usando o Visual Studio, o arquivo Exemplo.txt será copiado para ExemploNovo.txt.
Arquivo.Excluir
O método é usado para excluir um arquivo existente. Vejamos um exemplo. Insira o código abaixo no arquivo program.cs.
using System; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Tutorial { static void Main(string[] args) { String path = @"D:\Example.txt"; File.Delete(path); Console.ReadKey(); } } }
Explicação do código: -
- Primeiro, estamos declarando uma variável string chamada path. Este será o local do nosso arquivo Exemplo.txt. Este é o arquivo que será excluído.
- A seguir, estamos chamando o método File.Delete para excluir o arquivo.
Quando o código acima for definido e o projeto for executado usando o Visual Studio, o arquivo Exemplo.txt será excluído da unidade D.
Resumo
- C# possui várias operações de arquivo que podem ser executadas em arquivos. A maioria dessas operações faz parte da classe File.
- Se quiser ler dados de um arquivo, você pode usar os métodos File.ReadAlltext ou File.ReadAllLines.
Método de arquivo | Descrição |
---|---|
O arquivo existe | O método Arquivo existe é usado para verificar se um arquivo específico existe. |
Arquivo.ReadAlllines | O método é usado para ler todas as linhas, uma por uma, em um arquivo. |
Arquivo.ReadAllText | Este método é usado para ler todas as linhas de um arquivo de uma vez. |
Arquivo.Copiar | O método é usado para fazer uma cópia de um arquivo existente. |
Arquivo.Excluir | O método é usado para excluir um arquivo existente. |