1. Abrir e Ler Arquivos em C#
Em C#, você pode ler arquivos de várias maneiras. As classes File
, StreamReader
e FileStream
são comumente usadas para essa tarefa. Aqui está um exemplo básico:
Usando File.ReadAllText()
using System;
using System.IO;
class Program
{
static void Main()
{
string conteudo = File.ReadAllText("caminho/para/arquivo.txt");
Console.WriteLine(conteudo);
}
}
O método File.ReadAllText()
lê todo o conteúdo de um arquivo de texto em uma string. Ele é ideal para ler arquivos pequenos de uma só vez.
Usando StreamReader
Para ler arquivos linha por linha, você pode usar a classe StreamReader
:
using System;
using System.IO;
class Program
{
static void Main()
{
using (StreamReader sr = new StreamReader("caminho/para/arquivo.txt"))
{
string linha;
while ((linha = sr.ReadLine()) != null)
{
Console.WriteLine(linha);
}
}
}
}
No exemplo acima, o StreamReader
lê o arquivo linha por linha até chegar ao final. O using
garante que o arquivo seja fechado corretamente após a leitura.
2. Escrever em Arquivos
C# também facilita a escrita em arquivos. Você pode usar File.WriteAllText()
ou StreamWriter
para escrever dados em arquivos.
Usando File.WriteAllText()
using System;
using System.IO;
class Program
{
static void Main()
{
string conteudo = "Este é o conteúdo do arquivo.";
File.WriteAllText("caminho/para/arquivo.txt", conteudo);
Console.WriteLine("Arquivo criado com sucesso.");
}
}
O método File.WriteAllText()
escreve todo o conteúdo em um arquivo de uma só vez. Se o arquivo não existir, ele será criado; se existir, será sobrescrito.
Usando StreamWriter
using System;
using System.IO;
class Program
{
static void Main()
{
using (StreamWriter sw = new StreamWriter("caminho/para/arquivo.txt", true))
{
sw.WriteLine("Nova linha adicionada ao arquivo.");
}
Console.WriteLine("Linha adicionada com sucesso.");
}
}
No exemplo acima, o StreamWriter
é usado para adicionar uma linha ao arquivo. O segundo argumento true
no StreamWriter
permite a adição de conteúdo sem sobrescrever o arquivo existente.
3. Manipulação de Pastas
A classe Directory
oferece funções para criar, listar e excluir diretórios de forma simples. Aqui estão alguns exemplos úteis:
Criar um Diretório
using System;
using System.IO;
class Program
{
static void Main()
{
if (!Directory.Exists("meu_diretorio"))
{
Directory.CreateDirectory("meu_diretorio");
Console.WriteLine("Diretório criado com sucesso.");
}
else
{
Console.WriteLine("O diretório já existe.");
}
}
}
O método Directory.CreateDirectory()
cria um diretório, verificando antes se ele já existe usando Directory.Exists()
.
Listar Arquivos em um Diretório
using System;
using System.IO;
class Program
{
static void Main()
{
string[] arquivos = Directory.GetFiles("meu_diretorio");
foreach (var arquivo in arquivos)
{
Console.WriteLine(arquivo);
}
}
}
O método Directory.GetFiles()
retorna uma lista de arquivos dentro do diretório especificado.
Excluir um Diretório
using System;
using System.IO;
class Program
{
static void Main()
{
if (Directory.Exists("meu_diretorio"))
{
Directory.Delete("meu_diretorio", true); // O segundo parâmetro 'true' exclui todo o conteúdo do diretório
Console.WriteLine("Diretório excluído com sucesso.");
}
else
{
Console.WriteLine("Diretório não encontrado.");
}
}
}
O método Directory.Delete()
exclui o diretório especificado. O segundo parâmetro true
indica que o diretório e todo o seu conteúdo devem ser excluídos.
4. Excluir Arquivos
Para excluir arquivos, você pode usar o método File.Delete()
:
using System;
using System.IO;
class Program
{
static void Main()
{
if (File.Exists("caminho/para/arquivo.txt"))
{
File.Delete("caminho/para/arquivo.txt");
Console.WriteLine("Arquivo excluído com sucesso.");
}
else
{
Console.WriteLine("Arquivo não encontrado.");
}
}
}
Esse código verifica se o arquivo existe antes de excluí-lo com File.Delete()
.
5. Manipulação de Permissões de Arquivos
Em C#, você pode alterar as permissões de arquivos e pastas usando a classe FileInfo
. Aqui está um exemplo de como alterar permissões:
using System;
using System.IO;
class Program
{
static void Main()
{
FileInfo arquivo = new FileInfo("caminho/para/arquivo.txt");
arquivo.IsReadOnly = true; // Tornar o arquivo somente leitura
Console.WriteLine("Permissões alteradas com sucesso.");
}
}
O exemplo acima torna o arquivo "somente leitura" ao definir a propriedade IsReadOnly
como true
.
Boas Práticas na Manipulação de Arquivos e Pastas em C#
- Verificar a Existência: Sempre verifique se um arquivo ou diretório existe antes de tentar manipulá-lo para evitar exceções.
- Fechar Streams: Ao manipular streams de arquivos, use
using
para garantir que os arquivos sejam fechados corretamente após o uso. - Gerenciar Permissões: Certifique-se de que suas permissões de arquivos estão adequadas para evitar falhas de segurança.
- Tratar Exceções: Sempre envolva suas operações de arquivo em blocos
try-catch
para capturar exceções como arquivos inexistentes ou problemas de acesso.
Conclusão
O C# oferece um conjunto robusto de ferramentas para a manipulação de arquivos e pastas através do namespace System.IO
. Com essas funções, você pode ler, escrever, excluir e gerenciar arquivos e diretórios de maneira eficiente. Usar essas ferramentas corretamente garante que suas aplicações lidem com arquivos e pastas de forma segura e eficiente.