Compartilhar via


ShareDirectoryClient class

Um ShareDirectoryClient representa uma URL para o diretório do Armazenamento do Azure, permitindo que você manipule seus arquivos e diretórios.

Extends

StorageClient

Construtores

ShareDirectoryClient(string, Credential | TokenCredential, ShareClientOptions)

Cria uma instância do DirectoryClient.

ShareDirectoryClient(string, Pipeline, ShareClientConfig)

Cria uma instância do DirectoryClient.

Propriedades

name

O nome do diretório

path

O caminho completo do diretório

shareName

O nome do compartilhamento correspondente a este cliente de diretório

Propriedades herdadas

accountName
url

Valor da cadeia de caracteres de URL.

Métodos

create(DirectoryCreateOptions)

Cria um novo diretório no diretório pai ou compartilhamento especificado.

Consulte https://learn.microsoft.com/rest/api/storageservices/create-directory

createFile(string, number, FileCreateOptions)

Cria um novo arquivo ou substitui um arquivo nesse diretório. Observe que ele inicializa apenas o arquivo sem conteúdo.

Consulte https://learn.microsoft.com/rest/api/storageservices/create-file

createIfNotExists(DirectoryCreateOptions)

Cria um novo diretório no diretório pai ou compartilhamento especificado se ele ainda não existir. Se o diretório já existir, ele não será modificado.

Consulte https://learn.microsoft.com/rest/api/storageservices/create-directory

createSubdirectory(string, DirectoryCreateOptions)

Cria um novo subdiretório nesse diretório.

Consulte https://learn.microsoft.com/rest/api/storageservices/create-directory

delete(DirectoryDeleteOptions)

Remove o diretório vazio especificado. Observe que o diretório deve estar vazio antes de ser excluído.

Consulte https://learn.microsoft.com/rest/api/storageservices/delete-directory

deleteFile(string, FileDeleteOptions)

Remove o arquivo especificado nesse diretório da conta de armazenamento. Quando um arquivo é excluído com êxito, ele é imediatamente removido do índice da conta de armazenamento e não está mais acessível aos clientes. Os dados do arquivo são posteriormente removidos do serviço durante a coleta de lixo.

Excluir Arquivo falhará com o código de status 409 (Conflito) e o código de erro SharingViolation se o arquivo estiver aberto em um cliente SMB.

Não há suporte para Excluir Arquivo em um instantâneo de compartilhamento, que é uma cópia somente leitura de um compartilhamento. Uma tentativa de executar essa operação em um instantâneo de compartilhamento falhará com 400 (InvalidQueryParameterValue)

Consulte https://learn.microsoft.com/rest/api/storageservices/delete-file2

deleteIfExists(DirectoryDeleteOptions)

Remove o diretório vazio especificado se ele existir. Observe que o diretório deve estar vazio antes de ser excluído.

Consulte https://learn.microsoft.com/rest/api/storageservices/delete-directory

deleteSubdirectory(string, DirectoryDeleteOptions)

Remove o subdiretório vazio especificado nesse diretório. Observe que o diretório deve estar vazio antes de ser excluído.

Consulte https://learn.microsoft.com/rest/api/storageservices/delete-directory

exists(DirectoryExistsOptions)

Retornará true se o diretório especificado existir; false caso contrário.

OBSERVAÇÃO: use essa função com cuidado, pois um diretório existente pode ser excluído por outros clientes ou aplicativos. Vice-versa, novos diretórios podem ser adicionados por outros clientes ou aplicativos após a conclusão dessa função.

forceCloseAllHandles(DirectoryForceCloseHandlesSegmentOptions)

Force fechar todos os identificadores de um diretório.

Consulte https://learn.microsoft.com/rest/api/storageservices/force-close-handles

forceCloseHandle(string, DirectoryForceCloseHandlesOptions)

Forçar o fechamento de um identificador específico para um diretório.

Consulte https://learn.microsoft.com/rest/api/storageservices/force-close-handles

getDirectoryClient(string)

Cria um objeto ShareDirectoryClient para um subdiretório.

getFileClient(string)

Cria um objeto ShareFileClient.

getProperties(DirectoryGetPropertiesOptions)

Retorna todas as propriedades do sistema para o diretório especificado e também pode ser usado para verificar a existência de um diretório. Os dados retornados não incluem os arquivos no diretório ou em quaisquer subdiretórios.

Consulte https://learn.microsoft.com/rest/api/storageservices/get-directory-properties

listFilesAndDirectories(DirectoryListFilesAndDirectoriesOptions)

Retorna um iterador iterável assíncrono para listar todos os arquivos e diretórios na conta especificada.

.byPage() retorna um iterador iterável assíncrono para listar os arquivos e diretórios nas páginas.

Exemplo usando for await sintaxe:

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

let i = 1;
for await (const item of directoryClient.listFilesAndDirectories()) {
  if (item.kind === "directory") {
    console.log(`${i} - directory\t: ${item.name}`);
  } else {
    console.log(`${i} - file\t: ${item.name}`);
  }
  i++;
}

Exemplo usando iter.next():

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

let i = 1;
const iter = directoryClient.listFilesAndDirectories();
let { value, done } = await iter.next();
while (!done) {
  if (value.kind === "directory") {
    console.log(`${i} - directory\t: ${value.name}`);
  } else {
    console.log(`${i} - file\t: ${value.name}`);
  }
  ({ value, done } = await iter.next());
  i++;
}

Exemplo usando byPage():

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

let i = 1;
for await (const response of directoryClient
  .listFilesAndDirectories()
  .byPage({ maxPageSize: 20 })) {
  console.log(`Page ${i++}:`);
  for (const item of response.segment.directoryItems) {
    console.log(`\tdirectory: ${item.name}`);
  }
  for (const item of response.segment.fileItems) {
    console.log(`\tfile: ${item.name}`);
  }
}

Exemplo usando a paginação com um marcador:

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

let iterator = directoryClient.listFilesAndDirectories().byPage({ maxPageSize: 2 });
let response = (await iterator.next()).value;

for await (const item of response.segment.directoryItems) {
  console.log(`\tdirectory: ${item.name}`);
}

for await (const item of response.segment.fileItems) {
  console.log(`\tfile: ${item.name}`);
}

// Gets next marker
let marker = response.continuationToken;

// Passing next marker as continuationToken
iterator = directoryClient
  .listFilesAndDirectories()
  .byPage({ continuationToken: marker, maxPageSize: 10 });
response = (await iterator.next()).value;

for await (const item of response.segment.directoryItems) {
  console.log(`\tdirectory: ${item.name}`);
}

for await (const item of response.segment.fileItems) {
  console.log(`\tfile: ${item.name}`);
}
listHandles(DirectoryListHandlesOptions)

Retorna um iterador iterável assíncrono para listar todos os identificadores. na conta especificada.

.byPage() retorna um iterador iterável assíncrono para listar os identificadores nas páginas.

Exemplo usando for await sintaxe:

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

for await (const handle of directoryClient.listHandles()) {
  console.log(`Handle: ${handle.handleId}`);
}

Exemplo usando iter.next():

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

const handleIter = directoryClient.listHandles();
let { value, done } = await handleIter.next();
while (!done) {
  console.log(`Handle: ${value.handleId}`);
  ({ value, done } = await handleIter.next());
}

Exemplo usando byPage():

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

let i = 1;
for await (const response of directoryClient.listHandles().byPage({ maxPageSize: 20 })) {
  console.log(`Page ${i++}:`);
  for (const handle of response.handleList || []) {
    console.log(`\thandle: ${handle.handleId}`);
  }
}

Exemplo usando a paginação com um marcador:

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

let iterator = directoryClient.listHandles().byPage({ maxPageSize: 2 });
let response = (await iterator.next()).value;

for await (const handle of response.handleList || []) {
  console.log(`\thandle: ${handle.handleId}`);
}

// Gets next marker
let marker = response.continuationToken;

// Passing next marker as continuationToken
iterator = directoryClient.listHandles().byPage({ continuationToken: marker, maxPageSize: 10 });
response = (await iterator.next()).value;

for await (const handle of response.handleList || []) {
  console.log(`\thandle: ${handle.handleId}`);
}
rename(string, DirectoryRenameOptions)

Renomeia um diretório. Essa API só dá suporte à renomeação de um diretório no mesmo compartilhamento.

setMetadata(Metadata, DirectorySetMetadataOptions)

Atualiza metadados definidos pelo usuário para o diretório especificado.

Consulte https://learn.microsoft.com/rest/api/storageservices/set-directory-metadata

setProperties(DirectoryProperties)

Define propriedades no diretório.

Consulte https://learn.microsoft.com/rest/api/storageservices/set-directory-properties

Detalhes do construtor

ShareDirectoryClient(string, Credential | TokenCredential, ShareClientOptions)

Cria uma instância do DirectoryClient.

new ShareDirectoryClient(url: string, credential?: Credential | TokenCredential, options?: ShareClientOptions)

Parâmetros

url

string

Uma cadeia de caracteres de URL que aponta para o diretório de arquivos do Armazenamento do Azure, como "https://myaccount.file.core.windows.net/myshare/mydirectory". Você pode acrescentar uma SAS se estiver usando AnonymousCredential, como "https://myaccount.file.core.windows.net/myshare/mydirectory?sasString". Esse método aceita uma URL codificada ou UMA URL não codificada apontando para um diretório. A cadeia de caracteres de URL codificada NÃO será escapada duas vezes, somente caracteres especiais no caminho da URL serão escapados. No entanto, se um nome de diretório incluir %, o nome do diretório deverá ser codificado na URL. Como um diretório chamado "mydir%", a URL deve ser "https://myaccount.file.core.windows.net/myshare/mydir%25".

credential

Credential | TokenCredential

Como AnonymousCredential ou StorageSharedKeyCredential. Se não for especificado, AnonymousCredential será usado.

options
ShareClientOptions

Optional. Opções para configurar o pipeline HTTP.

ShareDirectoryClient(string, Pipeline, ShareClientConfig)

Cria uma instância do DirectoryClient.

new ShareDirectoryClient(url: string, pipeline: Pipeline, options?: ShareClientConfig)

Parâmetros

url

string

Uma cadeia de caracteres de URL que aponta para o diretório de arquivos do Armazenamento do Azure, como "https://myaccount.file.core.windows.net/myshare/mydirectory". Você pode acrescentar uma SAS se estiver usando AnonymousCredential, como "https://myaccount.file.core.windows.net/myshare/mydirectory?sasString". Esse método aceita uma URL codificada ou UMA URL não codificada apontando para um diretório. A cadeia de caracteres de URL codificada NÃO será escapada duas vezes, somente caracteres especiais no caminho da URL serão escapados. No entanto, se um nome de diretório incluir %, o nome do diretório deverá ser codificado na URL. Como um diretório chamado "mydir%", a URL deve ser "https://myaccount.file.core.windows.net/myshare/mydir%25".

pipeline
Pipeline

Chame newPipeline() para criar um pipeline padrão ou forneça um pipeline personalizado.

Detalhes da propriedade

name

O nome do diretório

string name

Valor da propriedade

string

path

O caminho completo do diretório

string path

Valor da propriedade

string

shareName

O nome do compartilhamento correspondente a este cliente de diretório

string shareName

Valor da propriedade

string

Detalhes das propriedades herdadas

accountName

accountName: string

Valor da propriedade

string

herdado de StorageClient.accountName

url

Valor da cadeia de caracteres de URL.

url: string

Valor da propriedade

string

herdado de StorageClient.url

Detalhes do método

create(DirectoryCreateOptions)

Cria um novo diretório no diretório pai ou compartilhamento especificado.

Consulte https://learn.microsoft.com/rest/api/storageservices/create-directory

function create(options?: DirectoryCreateOptions): Promise<DirectoryCreateResponse>

Parâmetros

options
DirectoryCreateOptions

Opções para a operação Criar Diretório.

Retornos

Dados de resposta para a operação de diretório.

createFile(string, number, FileCreateOptions)

Cria um novo arquivo ou substitui um arquivo nesse diretório. Observe que ele inicializa apenas o arquivo sem conteúdo.

Consulte https://learn.microsoft.com/rest/api/storageservices/create-file

function createFile(fileName: string, size: number, options?: FileCreateOptions): Promise<{ fileClient: ShareFileClient, fileCreateResponse: FileCreateResponse }>

Parâmetros

fileName

string

size

number

Especifica o tamanho máximo em bytes para o arquivo, até 4 TB.

options
FileCreateOptions

Opções para a operação Criação de Arquivos.

Retornos

Promise<{ fileClient: ShareFileClient, fileCreateResponse: FileCreateResponse }>

Dados de resposta de criação de arquivo e o cliente de arquivo correspondente.

createIfNotExists(DirectoryCreateOptions)

Cria um novo diretório no diretório pai ou compartilhamento especificado se ele ainda não existir. Se o diretório já existir, ele não será modificado.

Consulte https://learn.microsoft.com/rest/api/storageservices/create-directory

function createIfNotExists(options?: DirectoryCreateOptions): Promise<DirectoryCreateIfNotExistsResponse>

Parâmetros

Retornos

createSubdirectory(string, DirectoryCreateOptions)

Cria um novo subdiretório nesse diretório.

Consulte https://learn.microsoft.com/rest/api/storageservices/create-directory

function createSubdirectory(directoryName: string, options?: DirectoryCreateOptions): Promise<{ directoryClient: ShareDirectoryClient, directoryCreateResponse: DirectoryCreateResponse }>

Parâmetros

directoryName

string

options
DirectoryCreateOptions

Opções para a operação Criar Diretório.

Retornos

Promise<{ directoryClient: ShareDirectoryClient, directoryCreateResponse: DirectoryCreateResponse }>

O diretório cria dados de resposta e a instância correspondente do DirectoryClient.

delete(DirectoryDeleteOptions)

Remove o diretório vazio especificado. Observe que o diretório deve estar vazio antes de ser excluído.

Consulte https://learn.microsoft.com/rest/api/storageservices/delete-directory

function delete(options?: DirectoryDeleteOptions): Promise<DirectoryDeleteResponse>

Parâmetros

options
DirectoryDeleteOptions

Opções para a operação De exclusão de diretório.

Retornos

Dados de resposta para a operação De exclusão de diretório.

deleteFile(string, FileDeleteOptions)

Remove o arquivo especificado nesse diretório da conta de armazenamento. Quando um arquivo é excluído com êxito, ele é imediatamente removido do índice da conta de armazenamento e não está mais acessível aos clientes. Os dados do arquivo são posteriormente removidos do serviço durante a coleta de lixo.

Excluir Arquivo falhará com o código de status 409 (Conflito) e o código de erro SharingViolation se o arquivo estiver aberto em um cliente SMB.

Não há suporte para Excluir Arquivo em um instantâneo de compartilhamento, que é uma cópia somente leitura de um compartilhamento. Uma tentativa de executar essa operação em um instantâneo de compartilhamento falhará com 400 (InvalidQueryParameterValue)

Consulte https://learn.microsoft.com/rest/api/storageservices/delete-file2

function deleteFile(fileName: string, options?: FileDeleteOptions): Promise<FileDeleteResponse>

Parâmetros

fileName

string

Nome do arquivo a ser excluído

options
FileDeleteOptions

Opções para a operação de Exclusão de Arquivos.

Retornos

Dados de resposta de exclusão de arquivo.

deleteIfExists(DirectoryDeleteOptions)

Remove o diretório vazio especificado se ele existir. Observe que o diretório deve estar vazio antes de ser excluído.

Consulte https://learn.microsoft.com/rest/api/storageservices/delete-directory

function deleteIfExists(options?: DirectoryDeleteOptions): Promise<DirectoryDeleteIfExistsResponse>

Parâmetros

Retornos

deleteSubdirectory(string, DirectoryDeleteOptions)

Remove o subdiretório vazio especificado nesse diretório. Observe que o diretório deve estar vazio antes de ser excluído.

Consulte https://learn.microsoft.com/rest/api/storageservices/delete-directory

function deleteSubdirectory(directoryName: string, options?: DirectoryDeleteOptions): Promise<DirectoryDeleteResponse>

Parâmetros

directoryName

string

options
DirectoryDeleteOptions

Opções para a operação De exclusão de diretório.

Retornos

Dados de resposta de exclusão de diretório.

exists(DirectoryExistsOptions)

Retornará true se o diretório especificado existir; false caso contrário.

OBSERVAÇÃO: use essa função com cuidado, pois um diretório existente pode ser excluído por outros clientes ou aplicativos. Vice-versa, novos diretórios podem ser adicionados por outros clientes ou aplicativos após a conclusão dessa função.

function exists(options?: DirectoryExistsOptions): Promise<boolean>

Parâmetros

options
DirectoryExistsOptions

opções para a operação Exists.

Retornos

Promise<boolean>

forceCloseAllHandles(DirectoryForceCloseHandlesSegmentOptions)

Force fechar todos os identificadores de um diretório.

Consulte https://learn.microsoft.com/rest/api/storageservices/force-close-handles

function forceCloseAllHandles(options?: DirectoryForceCloseHandlesSegmentOptions): Promise<CloseHandlesInfo>

Parâmetros

Retornos

Promise<CloseHandlesInfo>

forceCloseHandle(string, DirectoryForceCloseHandlesOptions)

Forçar o fechamento de um identificador específico para um diretório.

Consulte https://learn.microsoft.com/rest/api/storageservices/force-close-handles

function forceCloseHandle(handleId: string, options?: DirectoryForceCloseHandlesOptions): Promise<DirectoryForceCloseHandlesResponse>

Parâmetros

handleId

string

ID do identificador específico, não pode ser asterisco "*". Use forceCloseHandlesSegment() para fechar todas as alças.

Retornos

getDirectoryClient(string)

Cria um objeto ShareDirectoryClient para um subdiretório.

function getDirectoryClient(subDirectoryName: string): ShareDirectoryClient

Parâmetros

subDirectoryName

string

Um nome de subdiretório

Retornos

O objeto ShareDirectoryClient para o nome do subdiretório fornecido.

Exemplo de uso:

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const shareClient = serviceClient.getShareClient(shareName);
const directoryClient = shareClient.getDirectoryClient(directoryName);
await directoryClient.create();

getFileClient(string)

Cria um objeto ShareFileClient.

function getFileClient(fileName: string): ShareFileClient

Parâmetros

fileName

string

Um nome de arquivo.

Retornos

Um novo objeto ShareFileClient para o nome de arquivo fornecido.

Exemplo de uso:

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

const content = "Hello World!";
const fileName = `newdirectory${+new Date()}`;
const fileClient = directoryClient.getFileClient(fileName);
await fileClient.create(content.length);
console.log(`Create file ${fileName} successfully`);

// Upload file range
await fileClient.uploadRange(content, 0, content.length);
console.log(`Upload file range "${content}" to ${fileName} successfully`);

getProperties(DirectoryGetPropertiesOptions)

Retorna todas as propriedades do sistema para o diretório especificado e também pode ser usado para verificar a existência de um diretório. Os dados retornados não incluem os arquivos no diretório ou em quaisquer subdiretórios.

Consulte https://learn.microsoft.com/rest/api/storageservices/get-directory-properties

function getProperties(options?: DirectoryGetPropertiesOptions): Promise<DirectoryGetPropertiesResponse>

Parâmetros

options
DirectoryGetPropertiesOptions

Opções para a operação Obter Propriedades do Diretório.

Retornos

Dados de resposta para a operação Obter Propriedades do Diretório.

listFilesAndDirectories(DirectoryListFilesAndDirectoriesOptions)

Retorna um iterador iterável assíncrono para listar todos os arquivos e diretórios na conta especificada.

.byPage() retorna um iterador iterável assíncrono para listar os arquivos e diretórios nas páginas.

Exemplo usando for await sintaxe:

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

let i = 1;
for await (const item of directoryClient.listFilesAndDirectories()) {
  if (item.kind === "directory") {
    console.log(`${i} - directory\t: ${item.name}`);
  } else {
    console.log(`${i} - file\t: ${item.name}`);
  }
  i++;
}

Exemplo usando iter.next():

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

let i = 1;
const iter = directoryClient.listFilesAndDirectories();
let { value, done } = await iter.next();
while (!done) {
  if (value.kind === "directory") {
    console.log(`${i} - directory\t: ${value.name}`);
  } else {
    console.log(`${i} - file\t: ${value.name}`);
  }
  ({ value, done } = await iter.next());
  i++;
}

Exemplo usando byPage():

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

let i = 1;
for await (const response of directoryClient
  .listFilesAndDirectories()
  .byPage({ maxPageSize: 20 })) {
  console.log(`Page ${i++}:`);
  for (const item of response.segment.directoryItems) {
    console.log(`\tdirectory: ${item.name}`);
  }
  for (const item of response.segment.fileItems) {
    console.log(`\tfile: ${item.name}`);
  }
}

Exemplo usando a paginação com um marcador:

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

let iterator = directoryClient.listFilesAndDirectories().byPage({ maxPageSize: 2 });
let response = (await iterator.next()).value;

for await (const item of response.segment.directoryItems) {
  console.log(`\tdirectory: ${item.name}`);
}

for await (const item of response.segment.fileItems) {
  console.log(`\tfile: ${item.name}`);
}

// Gets next marker
let marker = response.continuationToken;

// Passing next marker as continuationToken
iterator = directoryClient
  .listFilesAndDirectories()
  .byPage({ continuationToken: marker, maxPageSize: 10 });
response = (await iterator.next()).value;

for await (const item of response.segment.directoryItems) {
  console.log(`\tdirectory: ${item.name}`);
}

for await (const item of response.segment.fileItems) {
  console.log(`\tfile: ${item.name}`);
}
function listFilesAndDirectories(options?: DirectoryListFilesAndDirectoriesOptions): PagedAsyncIterableIterator<({ kind: "file" } & FileItem) | ({ kind: "directory" } & DirectoryItem), DirectoryListFilesAndDirectoriesSegmentResponse, PageSettings>

Parâmetros

options
DirectoryListFilesAndDirectoriesOptions

Opções para listar arquivos e operações de diretórios.

Retornos

Um asyncIterableIterator que dá suporte à paginação.

listHandles(DirectoryListHandlesOptions)

Retorna um iterador iterável assíncrono para listar todos os identificadores. na conta especificada.

.byPage() retorna um iterador iterável assíncrono para listar os identificadores nas páginas.

Exemplo usando for await sintaxe:

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

for await (const handle of directoryClient.listHandles()) {
  console.log(`Handle: ${handle.handleId}`);
}

Exemplo usando iter.next():

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

const handleIter = directoryClient.listHandles();
let { value, done } = await handleIter.next();
while (!done) {
  console.log(`Handle: ${value.handleId}`);
  ({ value, done } = await handleIter.next());
}

Exemplo usando byPage():

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

let i = 1;
for await (const response of directoryClient.listHandles().byPage({ maxPageSize: 20 })) {
  console.log(`Page ${i++}:`);
  for (const handle of response.handleList || []) {
    console.log(`\thandle: ${handle.handleId}`);
  }
}

Exemplo usando a paginação com um marcador:

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

let iterator = directoryClient.listHandles().byPage({ maxPageSize: 2 });
let response = (await iterator.next()).value;

for await (const handle of response.handleList || []) {
  console.log(`\thandle: ${handle.handleId}`);
}

// Gets next marker
let marker = response.continuationToken;

// Passing next marker as continuationToken
iterator = directoryClient.listHandles().byPage({ continuationToken: marker, maxPageSize: 10 });
response = (await iterator.next()).value;

for await (const handle of response.handleList || []) {
  console.log(`\thandle: ${handle.handleId}`);
}
function listHandles(options?: DirectoryListHandlesOptions): PagedAsyncIterableIterator<HandleItem, DirectoryListHandlesResponse, PageSettings>

Parâmetros

options
DirectoryListHandlesOptions

Opções para listar a operação de identificadores.

Um asyncIterableIterator que dá suporte à paginação.

Retornos

rename(string, DirectoryRenameOptions)

Renomeia um diretório. Essa API só dá suporte à renomeação de um diretório no mesmo compartilhamento.

function rename(destinationPath: string, options?: DirectoryRenameOptions): Promise<{ destinationDirectoryClient: ShareDirectoryClient, directoryRenameResponse: DirectoryRenameResponse }>

Parâmetros

destinationPath

string

Especifica o caminho de destino para o qual renomear. O caminho será codificado para colocar em uma URL para especificar o destino.

options
DirectoryRenameOptions

Opções para a operação de renomeação.

Retornos

Promise<{ destinationDirectoryClient: ShareDirectoryClient, directoryRenameResponse: DirectoryRenameResponse }>

Dados de resposta para a operação de renomeação de arquivo.

Exemplo de uso:

import { StorageSharedKeyCredential, ShareServiceClient } from "@azure/storage-file-share";

const account = "<account>";
const accountKey = "<accountkey>";

const credential = new StorageSharedKeyCredential(account, accountKey);
const serviceClient = new ShareServiceClient(
  `https://${account}.file.core.windows.net`,
  credential,
);

const shareName = "<share name>";
const directoryName = "<directory name>";
const destinationPath = "<destination path>";
const directoryClient = serviceClient.getShareClient(shareName).getDirectoryClient(directoryName);

await directoryClient.rename(destinationPath);

setMetadata(Metadata, DirectorySetMetadataOptions)

Atualiza metadados definidos pelo usuário para o diretório especificado.

Consulte https://learn.microsoft.com/rest/api/storageservices/set-directory-metadata

function setMetadata(metadata?: Metadata, options?: DirectorySetMetadataOptions): Promise<DirectorySetMetadataResponse>

Parâmetros

metadata
Metadata

Se nenhum metadados for fornecido, todos os metadados de diretório existentes serão removidos

options
DirectorySetMetadataOptions

Opções para definir a operação de metadados do diretório.

Retornos

Dados de resposta para a operação de metadados de conjunto de diretórios.

setProperties(DirectoryProperties)

Define propriedades no diretório.

Consulte https://learn.microsoft.com/rest/api/storageservices/set-directory-properties

function setProperties(properties?: DirectoryProperties): Promise<DirectorySetPropertiesResponse>

Parâmetros

properties
DirectoryProperties

Retornos