Share via


Exemplos de código da Partilha de Ficheiros do Azure com bibliotecas de cliente java versão 8

Este artigo mostra exemplos de código que utilizam a versão 8 da biblioteca de cliente da Partilha de Ficheiros do Azure para Java.

A 31 de março de 2023, retirámos o suporte para bibliotecas do SDK do Azure que não estão em conformidade com as diretrizes atuais do SDK do Azure. As novas bibliotecas do SDK do Azure são atualizadas regularmente para impulsionar experiências consistentes e reforçar a sua postura de segurança. Recomenda-se que faça a transição para as novas bibliotecas do SDK do Azure para tirar partido das novas capacidades e das atualizações de segurança críticas.

Embora as bibliotecas mais antigas ainda possam ser utilizadas para além de 31 de março de 2023, deixarão de receber suporte oficial e atualizações da Microsoft. Para obter mais informações, veja o anúncio de descontinuação do suporte.

Pré-requisitos

Para utilizar a biblioteca de cliente da Partilha de Ficheiros do Azure, adicione as seguintes import diretivas:

// Include the following imports to use Azure Files APIs v11
import com.microsoft.azure.storage.*;
import com.microsoft.azure.storage.file.*;

Aceder a uma partilha de ficheiros do Azure

Artigo relacionado: Desenvolver para Ficheiros do Azure com Java

Para aceder à sua conta de armazenamento, utilize o objeto CloudStorageAccount , transmitindo a cadeia de ligação para o respetivo método de análise .

// Use the CloudStorageAccount object to connect to your storage account
try {
    CloudStorageAccount storageAccount = CloudStorageAccount.parse(storageConnectionString);
} catch (InvalidKeyException invalidKey) {
    // Handle the exception
}

CloudStorageAccount.parse lança uma InvalidKeyException, pelo que terá de colocá-la dentro de um bloco try/catch.

Criar uma partilha de ficheiros

Artigo relacionado: Desenvolver para Ficheiros do Azure com Java

Todos os ficheiros e diretórios no Ficheiros do Azure são armazenados num contentor chamado partilha.

Para obter acesso a uma partilha e ao respetivo conteúdo, crie um cliente Ficheiros do Azure. O seguinte exemplo de código mostra como criar uma partilha de ficheiros:

// Create the Azure Files client.
CloudFileClient fileClient = storageAccount.createCloudFileClient();

Ao utilizar o cliente Ficheiros do Azure, pode obter uma referência a uma partilha.

// Get a reference to the file share
CloudFileShare share = fileClient.getShareReference("sampleshare");

Para realmente criar a partilha, utilize o método createIfNotExists do objeto CloudFileShare .

if (share.createIfNotExists()) {
    System.out.println("New share created");
}

Neste momento, a partilha contém uma referência a uma partilha denominada partilha de exemplo.

Eliminar partilhas de ficheiros

Artigo relacionado: Desenvolver para Ficheiros do Azure com Java

O seguinte código de exemplo elimina uma partilha de ficheiros.

Elimine uma partilha ao chamar o método deleteIfExists num objeto CloudFileShare .

try
{
    // Retrieve storage account from connection-string.
    CloudStorageAccount storageAccount = CloudStorageAccount.parse(storageConnectionString);

    // Create the file client.
   CloudFileClient fileClient = storageAccount.createCloudFileClient();

   // Get a reference to the file share
   CloudFileShare share = fileClient.getShareReference("sampleshare");

   if (share.deleteIfExists()) {
       System.out.println("sampleshare deleted");
   }
} catch (Exception e) {
    e.printStackTrace();
}

Criar um diretório

Artigo relacionado: Desenvolver para Ficheiros do Azure com Java

Pode organizar o armazenamento colocando ficheiros dentro de subdiretórios em vez de os ter todos no diretório de raiz.

O código seguinte cria um subdiretório com o nome sampledir no diretório de raiz:

//Get a reference to the root directory for the share.
CloudFileDirectory rootDir = share.getRootDirectoryReference();

//Get a reference to the sampledir directory
CloudFileDirectory sampleDir = rootDir.getDirectoryReference("sampledir");

if (sampleDir.createIfNotExists()) {
    System.out.println("sampledir created");
} else {
    System.out.println("sampledir already exists");
}

Eliminar um diretório

Artigo relacionado: Desenvolver para Ficheiros do Azure com Java

O seguinte exemplo de código mostra como eliminar um diretório. Não pode eliminar um diretório que ainda contenha ficheiros ou subdiretórios.

// Get a reference to the root directory for the share.
CloudFileDirectory rootDir = share.getRootDirectoryReference();

// Get a reference to the directory you want to delete
CloudFileDirectory containerDir = rootDir.getDirectoryReference("sampledir");

// Delete the directory
if ( containerDir.deleteIfExists() ) {
    System.out.println("Directory deleted");
}

Enumerar ficheiros e diretórios numa partilha de ficheiros do Azure

Artigo relacionado: Desenvolver para Ficheiros do Azure com Java

Obtenha uma lista de ficheiros e diretórios ao chamar listFilesAndDirectories numa referência cloudFileDirectory . O método devolve uma lista de objetos ListFileItem nos quais pode iterar.

O código seguinte lista ficheiros e diretórios dentro do diretório de raiz:

//Get a reference to the root directory for the share.
CloudFileDirectory rootDir = share.getRootDirectoryReference();

for ( ListFileItem fileItem : rootDir.listFilesAndDirectories() ) {
    System.out.println(fileItem.getUri());
}

Carregar um ficheiro

Artigo relacionado: Desenvolver para Ficheiros do Azure com Java

Obtenha uma referência ao diretório onde o ficheiro será carregado ao chamar o método getRootDirectoryReference no objeto de partilha.

//Get a reference to the root directory for the share.
CloudFileDirectory rootDir = share.getRootDirectoryReference();

Agora que tem uma referência ao diretório de raiz da partilha, pode carregar um ficheiro para o mesmo com o seguinte código:

// Define the path to a local file.
final String filePath = "C:\\temp\\Readme.txt";

CloudFile cloudFile = rootDir.getFileReference("Readme.txt");
cloudFile.uploadFromFile(filePath);

Transferir um ficheiro

Artigo relacionado: Desenvolver para Ficheiros do Azure com Java

O exemplo seguinte transfere SampleFile.txt e apresenta o respetivo conteúdo:

//Get a reference to the root directory for the share.
CloudFileDirectory rootDir = share.getRootDirectoryReference();

//Get a reference to the directory that contains the file
CloudFileDirectory sampleDir = rootDir.getDirectoryReference("sampledir");

//Get a reference to the file you want to download
CloudFile file = sampleDir.getFileReference("SampleFile.txt");

//Write the contents of the file to the console.
System.out.println(file.downloadText());

Eliminar um ficheiro

Artigo relacionado: Desenvolver para Ficheiros do Azure com Java

O código seguinte elimina um ficheiro com o nome SampleFile.txt armazenado dentro de um diretório com o nome sampledir:

// Get a reference to the root directory for the share.
CloudFileDirectory rootDir = share.getRootDirectoryReference();

// Get a reference to the directory where the file to be deleted is in
CloudFileDirectory containerDir = rootDir.getDirectoryReference("sampledir");

String filename = "SampleFile.txt"
CloudFile file;

file = containerDir.getFileReference(filename)
if ( file.deleteIfExists() ) {
    System.out.println(filename + " was deleted");
}