Exercício – Criar ficheiros e diretórios

Concluído

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

  1. No arquivo, remova o Program.cs loop que itera foreach e grava cada nome de arquivo retornado da FindFiles função na saída do console . Esta alteração faz com que a salesFiles variável não seja utilizada. No entanto, vamos deixá-lo aqui por enquanto, porque vamos usá-lo novamente em uma lição futura.

  2. Program.cs No arquivo, crie uma variável chamada salesTotalDir, 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);
    
  3. 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

  1. 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);
    
  2. Pressione Ctrl+S / Cmd+S para salvar o arquivo.

  3. Execute o programa executando o seguinte código no prompt do terminal:

    dotnet run
    
  4. Selecione o ícone Atualizar no explorador Ficheiros.

    Captura de ecrã do ícone Atualizar no explorador Ficheiros do editor do Cloud Shell.

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;
}