Exercício – Criar ficheiros e diretórios
As classes File
e Directory
no .NET permitem-lhe criar novos ficheiros e diretórios através de programação.
Até agora, criou uma aplicação de linha de comandos robusta no .NET que pode ler qualquer estrutura de pasta para localizar ficheiros com uma extensão .json. Agora, você precisa ler esses arquivos para resumir os dados neles e, em seguida, gravar os totais em um novo arquivo em um novo diretório chamado salesTotals.
Neste exercício, você cria o diretório salesTotalDir e o arquivo totals.txt onde os totais de vendas são agrupados.
Criar o diretório SalesTotals
No arquivo, remova o
Program.cs
loop que iteraforeach
e grava cada nome de arquivo retornado daFindFiles
função na saída do console . Esta alteração faz com que asalesFiles
variável não seja utilizada. No entanto, vamos deixá-lo aqui por enquanto, porque vamos usá-lo novamente em uma lição futura.Program.cs
No arquivo, crie uma variável chamadasalesTotalDir
, que contém o caminho para o diretório salesTotalDir:var currentDirectory = Directory.GetCurrentDirectory(); var storesDirectory = Path.Combine(currentDirectory, "stores"); var salesTotalDir = Path.Combine(currentDirectory, "salesTotalDir"); var salesFiles = FindFiles(storesDirectory);
Program.cs
No arquivo, adicione código para criar o diretório:var currentDirectory = Directory.GetCurrentDirectory(); var storesDirectory = Path.Combine(currentDirectory, "stores"); var salesTotalDir = Path.Combine(currentDirectory, "salesTotalDir"); Directory.CreateDirectory(salesTotalDir); // Add this line of code var salesFiles = FindFiles(storesDirectory);
Escreva o ficheiro totals.txt
Program.cs
No arquivo, adicione o código para criar um arquivo vazio chamado totals.txt dentro do diretório salesTotalDir recém-criado. Use uma cadeia de caracteres vazia para o conteúdo do arquivo por enquanto:var currentDirectory = Directory.GetCurrentDirectory(); var storesDirectory = Path.Combine(currentDirectory, "stores"); var salesTotalDir = Path.Combine(currentDirectory, "salesTotalDir"); Directory.CreateDirectory(salesTotalDir); var salesFiles = FindFiles(storesDirectory); File.WriteAllText(Path.Combine(salesTotalDir, "totals.txt"), String.Empty);
Pressione Ctrl+S / Cmd+S para salvar o arquivo.
Execute o programa executando o seguinte código no prompt do terminal:
dotnet run
Selecione o ícone Atualizar no explorador Ficheiros.
Está quase a terminar. O último passo é ler os ficheiros de vendas, adicionar os totais e escrever o total geral no novo ficheiro totals.txt. Em seguida, irá aprender a ler e analisar os dados nos ficheiros.
Está com dificuldades?
Se você ficou preso durante este exercício, aqui está o código completo até este ponto:
var currentDirectory = Directory.GetCurrentDirectory();
var storesDirectory = Path.Combine(currentDirectory, "stores");
var salesTotalDir = Path.Combine(currentDirectory, "salesTotalDir");
Directory.CreateDirectory(salesTotalDir);
var salesFiles = FindFiles(storesDirectory);
File.WriteAllText(Path.Combine(salesTotalDir, "totals.txt"), String.Empty);
IEnumerable<string> FindFiles(string folderName)
{
List<string> salesFiles = new List<string>();
var foundFiles = Directory.EnumerateFiles(folderName, "*", SearchOption.AllDirectories);
foreach (var file in foundFiles)
{
var extension = Path.GetExtension(file);
if (extension == ".json")
{
salesFiles.Add(file);
}
}
return salesFiles;
}