Partilhar via


Operações do sistema de ficheiros no Data Lake Storage Gen1 com o SDK .NET

Neste artigo, irá aprender a executar operações do sistema de ficheiros no Data Lake Storage Gen1 com o SDK .NET. As operações do sistema de ficheiros incluem a criação de pastas numa conta Data Lake Storage Gen1, o carregamento de ficheiros, a transferência de ficheiros, etc.

Para obter instruções sobre como realizar operações de gestão de contas em Data Lake Storage Gen1 com o SDK .NET, veja Operações de gestão de contas em Data Lake Storage Gen1 com o SDK .NET.

Pré-requisitos

Criar uma aplicação .NET

O exemplo de código disponível no GitHub explica-lhe o processo de criação de ficheiros no arquivo, de concatenação de ficheiros, de transferência de um ficheiro e de eliminação de alguns ficheiros do arquivo. Esta secção do artigo explica-lhe as partes principais do código.

  1. No Visual Studio, selecione o menu Ficheiro , Novo e, em seguida , Projeto.

  2. Selecione Aplicação de Consola (.NET Framework) e, em seguida, selecione Seguinte.

  3. Em Nome do projeto, introduza CreateADLApplicatione, em seguida, selecione Criar.

  4. Adicione os pacotes NuGet ao seu projeto.

    1. Clique com o botão direito do rato no nome do projeto no Explorador de Soluções e clique em Gerir Pacotes NuGet.

    2. No separador Gestor de Pacotes NuGet , certifique-se de que a origem do pacote está definida como nuget.org. Além disso, certifique-se de que a caixa de verificação Incluir pré-lançamento está selecionada.

    3. Procure e instale os seguintes pacotes NuGet:

      • Microsoft.Azure.DataLake.Store - Este artigo utiliza v1.0.0.
      • Microsoft.Rest.ClientRuntime.Azure.Authentication - Este artigo utiliza v2.3.1.

      Feche o Gestor de Pacotes NuGet.

  5. Abra Program.cs, elimine o código existente e, em seguida, inclua as seguintes instruções para adicionar referências aos espaços de nomes.

    using System;
    using System.IO;using System.Threading;
    using System.Linq;
    using System.Text;
    using System.Collections.Generic;
    using System.Security.Cryptography.X509Certificates; // Required only if you're using an Azure AD application created with certificates
    
    using Microsoft.Rest;
    using Microsoft.Rest.Azure.Authentication;
    using Microsoft.Azure.DataLake.Store;
    using Microsoft.IdentityModel.Clients.ActiveDirectory;
    
  6. Declare as variáveis conforme mostrado abaixo e forneça os valores para os marcadores de posição. Além disso, certifique-se de que o caminho local e o nome de ficheiro fornecidos aqui existem no computador.

    namespace SdkSample
    {
        class Program
        {
            private static string _adlsg1AccountName = "<DATA-LAKE-STORAGE-GEN1-NAME>.azuredatalakestore.net";
        }
    }
    

Nas secções restantes do artigo, pode ver como utilizar os métodos .NET disponíveis para realizar operações como autenticação, carregamento de ficheiros, etc.

Autenticação

Criar o objeto de cliente

O fragmento seguinte cria o objeto de cliente Data Lake Storage Gen1 sistema de ficheiros, que é utilizado para emitir pedidos para o serviço.

// Create client objects
AdlsClient client = AdlsClient.CreateClient(_adlsg1AccountName, adlCreds);

Criar um ficheiro e um diretório

Adicione o fragmento seguinte à sua aplicação. Este fragmento adiciona um ficheiro e qualquer diretório principal que não exista.

// Create a file - automatically creates any parent directories that don't exist
// The AdlsOutputStream preserves record boundaries - it does not break records while writing to the store

using (var stream = client.CreateFile(fileName, IfExists.Overwrite))
{
    byte[] textByteArray = Encoding.UTF8.GetBytes("This is test data to write.\r\n");
    stream.Write(textByteArray, 0, textByteArray.Length);

    textByteArray = Encoding.UTF8.GetBytes("This is the second line.\r\n");
    stream.Write(textByteArray, 0, textByteArray.Length);
}

Acrescentar a um ficheiro

O fragmento seguinte acrescenta dados a um ficheiro existente na conta Data Lake Storage Gen1.

// Append to existing file

using (var stream = client.GetAppendStream(fileName))
{
    byte[] textByteArray = Encoding.UTF8.GetBytes("This is the added line.\r\n");
    stream.Write(textByteArray, 0, textByteArray.Length);
}

Ler um ficheiro

O fragmento seguinte lê o conteúdo de um ficheiro no Data Lake Storage Gen1.

//Read file contents

using (var readStream = new StreamReader(client.GetReadStream(fileName)))
{
    string line;
    while ((line = readStream.ReadLine()) != null)
    {
        Console.WriteLine(line);
    }
}

Obter as propriedades do ficheiro

O fragmento seguinte devolve as propriedades associadas a um ficheiro ou diretório.

// Get file properties
var directoryEntry = client.GetDirectoryEntry(fileName);
PrintDirectoryEntry(directoryEntry);

A definição do PrintDirectoryEntry método está disponível como parte do exemplo no GitHub.

Mudar o nome de um ficheiro

O fragmento seguinte muda o nome de um ficheiro existente numa conta Data Lake Storage Gen1.

// Rename a file
string destFilePath = "/Test/testRenameDest3.txt";
client.Rename(fileName, destFilePath, true);

Enumerar um diretório

O fragmento seguinte enumera diretórios numa conta Data Lake Storage Gen1.

// Enumerate directory
foreach (var entry in client.EnumerateDirectory("/Test"))
{
    PrintDirectoryEntry(entry);
}

A definição do PrintDirectoryEntry método está disponível como parte do exemplo no GitHub.

Eliminar diretórios recursivamente

O fragmento seguinte elimina um diretório e todos os seus subdiretórios, recursivamente.

// Delete a directory and all its subdirectories and files
client.DeleteRecursive("/Test");

Amostras

Eis alguns exemplos que mostram como utilizar o SDK Data Lake Storage Gen1 Filesystem.

Ver também

Passos seguintes