你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

DataLakeDirectoryClient 类

public class DataLakeDirectoryClient
extends DataLakePathClient

此类提供包含 Azure 存储 Data Lake 的目录操作的客户端。 此客户端提供的操作包括创建目录、删除目录、重命名目录、设置元数据和 http 标头、设置和检索访问控制、获取属性以及创建和删除文件和子目录。

此客户端通过 DataLakePathClientBuilder 实例化或通过 检索 getDirectoryClient(String directoryName)

有关详细信息,请参阅 Azure Docs

方法摘要

修饰符和类型 方法和描述
DataLakeFileClient createFile(String fileName)

在目录中创建新文件。

DataLakeFileClient createFile(String fileName, boolean overwrite)

在目录中创建新文件。

DataLakeFileClient createFileIfNotExists(String fileName)

在目录中创建一个新文件(如果该文件不存在)。

Response<DataLakeFileClient> createFileIfNotExistsWithResponse(String fileName, DataLakePathCreateOptions options, Duration timeout, Context context)

在目录中创建一个新文件(如果该文件不存在)。

Response<DataLakeFileClient> createFileWithResponse(String fileName, DataLakePathCreateOptions options, Duration timeout, Context context)

在目录中创建新文件。

Response<DataLakeFileClient> createFileWithResponse(String fileName, String permissions, String umask, PathHttpHeaders headers, Map<String,String> metadata, DataLakeRequestConditions requestConditions, Duration timeout, Context context)

在目录中创建新文件。

DataLakeDirectoryClient createSubdirectory(String subdirectoryName)

在目录中创建新的子目录。

DataLakeDirectoryClient createSubdirectory(String subdirectoryName, boolean overwrite)

在目录中创建新的子目录。

DataLakeDirectoryClient createSubdirectoryIfNotExists(String subdirectoryName)

如果目录中不存在,则创建新的子目录。

Response<DataLakeDirectoryClient> createSubdirectoryIfNotExistsWithResponse(String subdirectoryName, DataLakePathCreateOptions options, Duration timeout, Context context)

在目录中创建新的子目录(如果不存在)。

Response<DataLakeDirectoryClient> createSubdirectoryWithResponse(String subdirectoryName, DataLakePathCreateOptions options, Duration timeout, Context context)

在目录中创建新的子目录。

Response<DataLakeDirectoryClient> createSubdirectoryWithResponse(String subdirectoryName, String permissions, String umask, PathHttpHeaders headers, Map<String,String> metadata, DataLakeRequestConditions requestConditions, Duration timeout, Context context)

在目录中创建新的子目录。

void delete()

删除目录。

void deleteFile(String fileName)

删除目录中的指定文件。

boolean deleteFileIfExists(String fileName)

删除目录中的指定文件(如果存在)。

Response<Boolean> deleteFileIfExistsWithResponse(String fileName, DataLakePathDeleteOptions options, Duration timeout, Context context)

删除目录中的指定文件(如果存在)。

Response<Void> deleteFileWithResponse(String fileName, DataLakeRequestConditions requestConditions, Duration timeout, Context context)

删除目录中的指定文件。

boolean deleteIfExists()

删除目录(如果存在)。

Response<Boolean> deleteIfExistsWithResponse(DataLakePathDeleteOptions options, Duration timeout, Context context)

删除目录(如果存在)。

void deleteRecursively()

递归删除目录和目录中的所有内容。

Response<Void> deleteRecursivelyWithResponse(DataLakeRequestConditions requestConditions, Duration timeout, Context context)

递归删除目录和目录中的所有内容。

void deleteSubdirectory(String subdirectoryName)

删除目录中的指定子目录。

boolean deleteSubdirectoryIfExists(String subdirectoryName)

删除目录中的指定子目录(如果存在)。

Response<Boolean> deleteSubdirectoryIfExistsWithResponse(String subdirectoryName, DataLakePathDeleteOptions options, Duration timeout, Context context)

删除目录中的指定子目录(如果存在)。

Response<Void> deleteSubdirectoryWithResponse(String subdirectoryName, boolean recursive, DataLakeRequestConditions requestConditions, Duration timeout, Context context)

删除目录中的指定子目录。

Response<Void> deleteWithResponse(boolean recursive, DataLakeRequestConditions requestConditions, Duration timeout, Context context)

删除目录。

DataLakeDirectoryClient getCustomerProvidedKeyClient(CustomerProvidedKey customerProvidedKey)

使用指定的 DataLakeDirectoryClient 创建一个新的 customerProvidedKey

String getDirectoryName()

获取此目录的名称,不包括其完整路径。

String getDirectoryPath()

获取此目录的路径,不包括资源本身的名称。

String getDirectoryUrl()

获取此客户端在 Data Lake 服务上表示的目录的 URL。

DataLakeFileClient getFileClient(String fileName)

通过将文件名连接到 DataLakeDirectory客户端 URL 的末尾来初始化新的 DataLake文件客户端对象。

DataLakeDirectoryClient getSubdirectoryClient(String subdirectoryName)

通过将目录名称连接到 DataLakeDirectory客户端 URL 的末尾来初始化新的 DataLakeDirectory客户端对象。

PagedIterable<PathItem> listPaths()

返回此目录中文件/目录的延迟加载列表。

PagedIterable<PathItem> listPaths(boolean recursive, boolean userPrincipleNameReturned, Integer maxResults, Duration timeout)

返回此目录中文件/目录的延迟加载列表。

DataLakeDirectoryClient rename(String destinationFileSystem, String destinationPath)

将目录移动到文件系统中的另一个位置。

Response<DataLakeDirectoryClient> renameWithResponse(String destinationFileSystem, String destinationPath, DataLakeRequestConditions sourceRequestConditions, DataLakeRequestConditions destinationRequestConditions, Duration timeout, Context context)

将目录移动到文件系统中的另一个位置。

方法继承自 DataLakePathClient

方法继承自 java.lang.Object

方法详细信息

createFile

public DataLakeFileClient createFile(String fileName)

在目录中创建新文件。 默认情况下,此方法不会覆盖现有文件。 有关详细信息,请参阅 Azure Docs

示例代码

DataLakeFileClient fileClient = client.createFile(fileName);

Parameters:

fileName - 要创建的文件的名称。

Returns:

DataLakeFileClient用于与创建的文件交互的 。

createFile

public DataLakeFileClient createFile(String fileName, boolean overwrite)

在目录中创建新文件。 有关详细信息,请参阅 Azure Docs

示例代码

boolean overwrite = false; /* Default value. */
 DataLakeFileClient fClient = client.createFile(fileName, overwrite);

Parameters:

fileName - 要创建的文件的名称。
overwrite - 是否覆盖文件是否存在。

Returns:

DataLakeFileClient用于与创建的文件交互的 。

createFileIfNotExists

public DataLakeFileClient createFileIfNotExists(String fileName)

在目录中创建一个新文件(如果该文件不存在)。 有关详细信息,请参阅 Azure Docs

示例代码

DataLakeFileClient fileClient = client.createFileIfNotExists(fileName);

Parameters:

fileName - 要创建的文件的名称。

Returns:

DataLakeFileClient用于与创建的文件交互的 。

createFileIfNotExistsWithResponse

public Response createFileIfNotExistsWithResponse(String fileName, DataLakePathCreateOptions options, Duration timeout, Context context)

在目录中创建一个新文件(如果该文件不存在)。 有关详细信息,请参阅 Azure Docs

示例代码

PathHttpHeaders headers = new PathHttpHeaders().setContentLanguage("en-US").setContentType("binary");
 String permissions = "permissions";
 String umask = "umask";
 DataLakePathCreateOptions options = new DataLakePathCreateOptions()
     .setPermissions(permissions)
     .setUmask(umask)
     .setPathHttpHeaders(headers)
     .setMetadata(Collections.singletonMap("metadata", "value"));

 Response<DataLakeFileClient> response = client.createFileIfNotExistsWithResponse(fileName, options, timeout,
     new Context(key1, value1));
 if (response.getStatusCode() == 409) {
     System.out.println("Already existed.");
 } else {
     System.out.printf("Create completed with status %d%n", response.getStatusCode());
 }

Parameters:

fileName - 要创建的文件的名称。
options - DataLakePathCreateOptions 元数据键或值,必须将其删除或编码。
timeout - 一个可选的超时值,超过该值 RuntimeException 将引发 。
context - 在服务调用期间通过 Http 管道传递的其他上下文。

Returns:

一个 Response<T> ,它 value 包含 DataLakeFileAsyncClient 用于与创建的文件交互的 。 如果 Response<T>的状态代码为 201,则表示已成功创建新文件。 如果状态代码为 409,则此位置已存在同名的文件。

createFileWithResponse

public Response createFileWithResponse(String fileName, DataLakePathCreateOptions options, Duration timeout, Context context)

在目录中创建新文件。 如果已存在同名的文件,则会覆盖该文件。 有关详细信息,请参阅 Azure Docs

示例代码

PathHttpHeaders httpHeaders = new PathHttpHeaders()
     .setContentLanguage("en-US")
     .setContentType("binary");
 DataLakeRequestConditions requestConditions = new DataLakeRequestConditions()
     .setLeaseId(leaseId);
 Map<String, String> metadata = Collections.singletonMap("metadata", "value");
 String permissions = "permissions";
 String umask = "umask";
 String owner = "rwx";
 String group = "r--";
 String leaseId = CoreUtils.randomUuid().toString();
 Integer duration = 15;
 DataLakePathCreateOptions options = new DataLakePathCreateOptions()
     .setPermissions(permissions)
     .setUmask(umask)
     .setOwner(owner)
     .setGroup(group)
     .setPathHttpHeaders(httpHeaders)
     .setRequestConditions(requestConditions)
     .setMetadata(metadata)
     .setProposedLeaseId(leaseId)
     .setLeaseDuration(duration);

 Response<DataLakeFileClient> newFileClient = client.createFileWithResponse(fileName, options, timeout,
     new Context(key1, value1));

Parameters:

fileName - 要创建的文件的名称。
timeout - 一个可选的超时值,超过该值 RuntimeException 将引发 。
context - 在服务调用期间通过 Http 管道传递的其他上下文。

Returns:

一个 Response<T> ,它 value 包含 DataLakeFileClient 用于与创建的文件交互的 。

createFileWithResponse

public Response createFileWithResponse(String fileName, String permissions, String umask, PathHttpHeaders headers, Map metadata, DataLakeRequestConditions requestConditions, Duration timeout, Context context)

在目录中创建新文件。 如果已存在同名的文件,则会覆盖该文件。 有关详细信息,请参阅 Azure Docs

示例代码

PathHttpHeaders httpHeaders = new PathHttpHeaders()
     .setContentLanguage("en-US")
     .setContentType("binary");
 DataLakeRequestConditions requestConditions = new DataLakeRequestConditions()
     .setLeaseId(leaseId);
 String permissions = "permissions";
 String umask = "umask";
 Response<DataLakeFileClient> newFileClient = client.createFileWithResponse(fileName, permissions, umask, httpHeaders,
     Collections.singletonMap("metadata", "value"), requestConditions,
     timeout, new Context(key1, value1));

Parameters:

fileName - 要创建的文件的名称。
permissions - 文件所有者、文件拥有组和其他文件的 POSIX 访问权限。
umask - 限制要创建的文件的权限。
headers - PathHttpHeaders
metadata - 要与文件关联的元数据。 如果任何元数据键或值中都有前导或尾随空格,则必须将其删除或编码。
requestConditions - DataLakeRequestConditions
timeout - 一个可选的超时值,超过该值 RuntimeException 将引发 。
context - 在服务调用期间通过 Http 管道传递的其他上下文。

Returns:

一个 Response<T> ,它 value 包含 DataLakeFileClient 用于与创建的文件交互的 。

createSubdirectory

public DataLakeDirectoryClient createSubdirectory(String subdirectoryName)

在目录中创建新的子目录。 默认情况下,此方法不会覆盖现有子目录。 有关详细信息,请参阅 Azure Docs

示例代码

DataLakeDirectoryClient directoryClient = client.createSubdirectory(directoryName);

Parameters:

subdirectoryName - 要创建的子目录的名称。

Returns:

DataLakeDirectoryClient用于与创建的子目录交互的 。

createSubdirectory

public DataLakeDirectoryClient createSubdirectory(String subdirectoryName, boolean overwrite)

在目录中创建新的子目录。 有关详细信息,请参阅 Azure Docs

示例代码

boolean overwrite = false; /* Default value. */
 DataLakeDirectoryClient dClient = client.createSubdirectory(fileName, overwrite);

Parameters:

subdirectoryName - 要创建的子目录的名称。
overwrite - 是否覆盖子目录是否存在。

Returns:

DataLakeDirectoryClient用于与创建的子目录交互的 。

createSubdirectoryIfNotExists

public DataLakeDirectoryClient createSubdirectoryIfNotExists(String subdirectoryName)

如果目录中不存在,则创建新的子目录。 有关详细信息,请参阅 Azure Docs

示例代码

DataLakeDirectoryClient directoryClient = client.createSubdirectoryIfNotExists(directoryName);

Parameters:

subdirectoryName - 要创建的子目录的名称。

Returns:

DataLakeDirectoryClient用于与创建的子目录交互的 。

createSubdirectoryIfNotExistsWithResponse

public Response createSubdirectoryIfNotExistsWithResponse(String subdirectoryName, DataLakePathCreateOptions options, Duration timeout, Context context)

在目录中创建新的子目录(如果不存在)。 有关详细信息,请参阅 Azure Docs

示例代码

PathHttpHeaders headers = new PathHttpHeaders()
     .setContentLanguage("en-US")
     .setContentType("binary");
 String permissions = "permissions";
 String umask = "umask";
 DataLakePathCreateOptions options = new DataLakePathCreateOptions()
     .setPermissions(permissions)
     .setUmask(umask)
     .setPathHttpHeaders(headers)
     .setMetadata(Collections.singletonMap("metadata", "value"));

 Response<DataLakeDirectoryClient> response = client.createSubdirectoryIfNotExistsWithResponse(directoryName,
     options, timeout, new Context(key1, value1));
 if (response.getStatusCode() == 409) {
     System.out.println("Already existed.");
 } else {
     System.out.printf("Create completed with status %d%n", response.getStatusCode());
 }

Parameters:

subdirectoryName - 要创建的子目录的名称。
timeout - 一个可选的超时值,超过该值 RuntimeException 将引发 。
context - 在服务调用期间通过 Http 管道传递的其他上下文。

Returns:

一个 Response<T> ,它 value 包含 DataLakeDirectoryClient 用于与创建的子目录交互的 。 如果 Response<T>的状态代码为 201,则表示已成功创建新的子目录。 如果状态代码为 409,则此位置已存在同名的子目录。

createSubdirectoryWithResponse

public Response createSubdirectoryWithResponse(String subdirectoryName, DataLakePathCreateOptions options, Duration timeout, Context context)

在目录中创建新的子目录。 如果已存在同名的子目录,则将覆盖该子目录。 有关详细信息,请参阅 Azure Docs

示例代码

PathHttpHeaders httpHeaders = new PathHttpHeaders()
     .setContentLanguage("en-US")
     .setContentType("binary");
 DataLakeRequestConditions requestConditions = new DataLakeRequestConditions()
     .setLeaseId(leaseId);
 Map<String, String> metadata = Collections.singletonMap("metadata", "value");
 String permissions = "permissions";
 String umask = "umask";
 String owner = "rwx";
 String group = "r--";
 String leaseId = CoreUtils.randomUuid().toString();
 Integer duration = 15;
 DataLakePathCreateOptions options = new DataLakePathCreateOptions()
     .setPermissions(permissions)
     .setUmask(umask)
     .setOwner(owner)
     .setGroup(group)
     .setPathHttpHeaders(httpHeaders)
     .setRequestConditions(requestConditions)
     .setMetadata(metadata)
     .setProposedLeaseId(leaseId)
     .setLeaseDuration(duration);

 Response<DataLakeDirectoryClient> newDirectoryClient = client.createSubdirectoryWithResponse(directoryName,
     options, timeout, new Context(key1, value1));

Parameters:

subdirectoryName - 要创建的子目录的名称。
timeout - 一个可选的超时值,超过该值 RuntimeException 将引发 。
context - 在服务调用期间通过 Http 管道传递的其他上下文。

Returns:

一个 Response<T>DataLakeDirectoryClient ,它value包含用于与创建的子目录交互的 。

createSubdirectoryWithResponse

public Response createSubdirectoryWithResponse(String subdirectoryName, String permissions, String umask, PathHttpHeaders headers, Map metadata, DataLakeRequestConditions requestConditions, Duration timeout, Context context)

在目录中创建新的子目录。 如果已存在同名的子目录,则将覆盖该子目录。 有关详细信息,请参阅 Azure Docs

示例代码

PathHttpHeaders httpHeaders = new PathHttpHeaders()
     .setContentLanguage("en-US")
     .setContentType("binary");
 DataLakeRequestConditions requestConditions = new DataLakeRequestConditions()
     .setLeaseId(leaseId);
 String permissions = "permissions";
 String umask = "umask";
 Response<DataLakeDirectoryClient> newDirectoryClient = client.createSubdirectoryWithResponse(directoryName,
     permissions, umask, httpHeaders, Collections.singletonMap("metadata", "value"), requestConditions, timeout,
     new Context(key1, value1));

Parameters:

subdirectoryName - 要创建的子目录的名称。
permissions - 子目录所有者、子目录拥有组和其他子目录所有者的 POSIX 访问权限。
umask - 限制要创建的子目录的权限。
headers - PathHttpHeaders
metadata - 要与资源关联的元数据。 如果任何元数据键或值中都有前导或尾随空格,则必须将其删除或编码。
requestConditions - DataLakeRequestConditions
timeout - 一个可选的超时值,超过该值 RuntimeException 将引发 。
context - 在服务调用期间通过 Http 管道传递的其他上下文。

Returns:

一个 Response<T>DataLakeDirectoryClient ,它value包含用于与创建的子目录交互的 。

delete

public void delete()

删除目录。

示例代码

client.delete();
 System.out.println("Delete request completed");

有关详细信息,请参阅 Azure Docs

deleteFile

public void deleteFile(String fileName)

删除目录中的指定文件。 如果文件不存在,操作将失败。 有关详细信息,请参阅 Azure Docs

示例代码

client.deleteFile(fileName);
 System.out.println("Delete request completed");

Parameters:

fileName - 要删除的文件的名称。

deleteFileIfExists

public boolean deleteFileIfExists(String fileName)

删除目录中的指定文件(如果存在)。 有关详细信息,请参阅 Azure Docs

示例代码

boolean result = client.deleteFileIfExists(fileName);
 System.out.println("Delete request completed: " + result);

Parameters:

fileName - 要删除的文件的名称。

Returns:

true 如果文件已成功删除,则为 ; false 如果文件不存在,则为 。

deleteFileIfExistsWithResponse

public Response deleteFileIfExistsWithResponse(String fileName, DataLakePathDeleteOptions options, Duration timeout, Context context)

删除目录中的指定文件(如果存在)。 有关详细信息,请参阅 Azure Docs

示例代码

DataLakeRequestConditions requestConditions = new DataLakeRequestConditions()
     .setLeaseId(leaseId);
 DataLakePathDeleteOptions options = new DataLakePathDeleteOptions().setIsRecursive(false)
     .setRequestConditions(requestConditions);

 Response<Boolean> response = client.deleteFileIfExistsWithResponse(fileName, options, timeout,
     new Context(key1, value1));
 if (response.getStatusCode() == 404) {
     System.out.println("Does not exist.");
 } else {
     System.out.printf("Delete completed with status %d%n", response.getStatusCode());
 }

Parameters:

fileName - 要删除的文件的名称。
timeout - 一个可选的超时值,超过该值 RuntimeException 将引发 。
context - 在服务调用期间通过 Http 管道传递的其他上下文。

Returns:

包含状态代码和 HTTP 标头的响应。 如果 Response<T>的状态代码为 200,则表示指定的文件已成功删除。 如果状态代码为 404,则指定的文件不存在。

deleteFileWithResponse

public Response deleteFileWithResponse(String fileName, DataLakeRequestConditions requestConditions, Duration timeout, Context context)

删除目录中的指定文件。 如果文件不存在,操作将失败。 有关详细信息,请参阅 Azure Docs

示例代码

DataLakeRequestConditions requestConditions = new DataLakeRequestConditions()
     .setLeaseId(leaseId);

 client.deleteFileWithResponse(fileName, requestConditions, timeout, new Context(key1, value1));
 System.out.println("Delete request completed");

Parameters:

fileName - 要删除的文件的名称。
requestConditions - DataLakeRequestConditions
timeout - 一个可选的超时值,超过该值 RuntimeException 将引发 。
context - 在服务调用期间通过 Http 管道传递的其他上下文。

Returns:

包含状态代码和 HTTP 标头的响应

deleteIfExists

public boolean deleteIfExists()

删除目录(如果存在)。

示例代码

boolean result = client.deleteIfExists();
 System.out.println("Delete request completed: " + result);

有关详细信息,请参阅 Azure Docs

Overrides:

DataLakeDirectoryClient.deleteIfExists()

Returns:

true 如果成功删除目录,则为 ; false 如果目录不存在,则为 。

deleteIfExistsWithResponse

public Response deleteIfExistsWithResponse(DataLakePathDeleteOptions options, Duration timeout, Context context)

删除目录(如果存在)。

示例代码

DataLakeRequestConditions requestConditions = new DataLakeRequestConditions()
     .setLeaseId(leaseId);
 boolean recursive = false; // Default value
 DataLakePathDeleteOptions options = new DataLakePathDeleteOptions().setIsRecursive(recursive)
     .setRequestConditions(requestConditions);

 Response<Boolean> response = client.deleteIfExistsWithResponse(options, timeout, new Context(key1, value1));
 if (response.getStatusCode() == 404) {
     System.out.println("Does not exist.");
 } else {
     System.out.printf("Delete completed with status %d%n", response.getStatusCode());
 }

有关详细信息,请参阅 Azure Docs

Overrides:

DataLakeDirectoryClient.deleteIfExistsWithResponse(DataLakePathDeleteOptions options, Duration timeout, Context context)

Parameters:

timeout - 一个可选的超时值,超过该值 RuntimeException 将引发 。
context - 在服务调用期间通过 Http 管道传递的其他上下文。

Returns:

包含状态代码和 HTTP 标头的响应。 如果 Response<T>的状态代码为 200,则表示已成功删除该目录。 如果状态代码为 404,则目录不存在。

deleteRecursively

public void deleteRecursively()

递归删除目录和目录中的所有内容。

示例代码

client.deleteRecursively();
 System.out.println("Delete request completed");

有关详细信息,请参阅 Azure Docs

deleteRecursivelyWithResponse

public Response deleteRecursivelyWithResponse(DataLakeRequestConditions requestConditions, Duration timeout, Context context)

递归删除目录和目录中的所有内容。

示例代码

DataLakeRequestConditions deleteRequestConditions = new DataLakeRequestConditions()
     .setLeaseId(leaseId);
 client.deleteRecursivelyWithResponse(deleteRequestConditions, timeout, new Context(key1, value1));
 System.out.println("Delete request completed");

有关详细信息,请参阅 Azure Docs

Parameters:

requestConditions - DataLakeRequestConditions
timeout - 一个可选的超时值,超过该值 RuntimeException 将引发 。
context - 在服务调用期间通过 Http 管道传递的其他上下文。

Returns:

指示完成的响应响应。

deleteSubdirectory

public void deleteSubdirectory(String subdirectoryName)

删除目录中的指定子目录。 如果子目录不存在或不为空,则操作将失败。 有关详细信息,请参阅 Azure Docs

示例代码

client.deleteSubdirectory(directoryName);
 System.out.println("Delete request completed");

Parameters:

subdirectoryName - 要删除的子目录的名称。

deleteSubdirectoryIfExists

public boolean deleteSubdirectoryIfExists(String subdirectoryName)

删除目录中的指定子目录(如果存在)。 有关详细信息,请参阅 Azure Docs

示例代码

boolean result = client.deleteSubdirectoryIfExists(directoryName);
 System.out.println("Delete request completed: " + result);

Parameters:

subdirectoryName - 要删除的子目录的名称。

Returns:

true 如果成功删除子目录,则为 ; false 如果子目录不存在,则为 。

deleteSubdirectoryIfExistsWithResponse

public Response deleteSubdirectoryIfExistsWithResponse(String subdirectoryName, DataLakePathDeleteOptions options, Duration timeout, Context context)

删除目录中的指定子目录(如果存在)。 有关详细信息,请参阅 Azure Docs

示例代码

DataLakeRequestConditions requestConditions = new DataLakeRequestConditions()
     .setLeaseId(leaseId);
 boolean recursive = false; // Default value
 DataLakePathDeleteOptions options = new DataLakePathDeleteOptions().setIsRecursive(recursive)
     .setRequestConditions(requestConditions);

 Response<Boolean> response = client.deleteSubdirectoryIfExistsWithResponse(directoryName, options,
     timeout, new Context(key1, value1));
 if (response.getStatusCode() == 404) {
     System.out.println("Does not exist.");
 } else {
     System.out.printf("Delete completed with status %d%n", response.getStatusCode());
 }

Parameters:

subdirectoryName - 要删除的子目录的名称。
timeout - 一个可选的超时值,超过该值 RuntimeException 将引发 。
context - 在服务调用期间通过 Http 管道传递的其他上下文。

Returns:

包含状态代码和 HTTP 标头的响应。 如果 Response<T>的状态代码为 200,则表示已成功删除指定的子目录。 如果状态代码为 404,则指定的子目录不存在。

deleteSubdirectoryWithResponse

public Response deleteSubdirectoryWithResponse(String subdirectoryName, boolean recursive, DataLakeRequestConditions requestConditions, Duration timeout, Context context)

删除目录中的指定子目录。 如果子目录不存在或不为空,则操作将失败。 有关详细信息,请参阅 Azure Docs

示例代码

DataLakeRequestConditions requestConditions = new DataLakeRequestConditions()
     .setLeaseId(leaseId);
 boolean recursive = false; // Default value

 client.deleteSubdirectoryWithResponse(directoryName, recursive, requestConditions, timeout,
     new Context(key1, value1));
 System.out.println("Delete request completed");

Parameters:

subdirectoryName - 要删除的子目录的名称。
recursive - 是否删除子目录下的所有路径。
requestConditions - DataLakeRequestConditions
timeout - 一个可选的超时值,超过该值 RuntimeException 将引发 。
context - 在服务调用期间通过 Http 管道传递的其他上下文。

Returns:

包含状态代码和 HTTP 标头的响应

deleteWithResponse

public Response deleteWithResponse(boolean recursive, DataLakeRequestConditions requestConditions, Duration timeout, Context context)

删除目录。

示例代码

DataLakeRequestConditions requestConditions = new DataLakeRequestConditions()
     .setLeaseId(leaseId);
 boolean recursive = false; // Default value

 client.deleteWithResponse(recursive, requestConditions, timeout, new Context(key1, value1));
 System.out.println("Delete request completed");

有关详细信息,请参阅 Azure Docs

Parameters:

recursive - 是否删除目录下的所有路径。
requestConditions - DataLakeRequestConditions
timeout - 一个可选的超时值,超过该值 RuntimeException 将引发 。
context - 在服务调用期间通过 Http 管道传递的其他上下文。

Returns:

指示完成的响应响应。

getCustomerProvidedKeyClient

public DataLakeDirectoryClient getCustomerProvidedKeyClient(CustomerProvidedKey customerProvidedKey)

使用指定的 DataLakeDirectoryClient 创建一个新的 customerProvidedKey

Overrides:

DataLakeDirectoryClient.getCustomerProvidedKeyClient(CustomerProvidedKey customerProvidedKey)

Parameters:

customerProvidedKey - 对于 CustomerProvidedKey 目录,传递 null 以使用没有客户提供的密钥。

Returns:

具有 DataLakeDirectoryClient 指定 customerProvidedKey的 。

getDirectoryName

public String getDirectoryName()

获取此目录的名称,不包括其完整路径。

Returns:

目录名。

getDirectoryPath

public String getDirectoryPath()

获取此目录的路径,不包括资源本身的名称。

Returns:

目录的路径。

getDirectoryUrl

public String getDirectoryUrl()

获取此客户端在 Data Lake 服务上表示的目录的 URL。

Returns:

URL。

getFileClient

public DataLakeFileClient getFileClient(String fileName)

通过将 fileName 连接到 DataLakeDirectoryClient URL 的末尾来初始化新的 DataLakeFileClient 对象。 新的 DataLakeFileClient 使用与 DataLakeDirectoryClient 相同的请求策略管道。

Parameters:

fileName - 一个 String ,表示文件的名称。 示例代码
 DataLakeFileClient dataLakeFileClient = client.getFileClient(fileName);
 

Returns:

一个新的 DataLakeFileClient 对象,它引用此目录中具有指定名称的文件。

getSubdirectoryClient

public DataLakeDirectoryClient getSubdirectoryClient(String subdirectoryName)

通过将 directoryName 连接到 DataLakeDirectoryClient URL 的末尾来初始化新的 DataLakeDirectoryClient 对象。 新的 DataLakeDirectoryClient 使用与 DataLakeDirectoryClient 相同的请求策略管道。

Parameters:

subdirectoryName - 一个 String ,表示子目录的名称。 示例代码
 DataLakeDirectoryClient dataLakeDirectoryClient = client.getSubdirectoryClient(directoryName);
 

Returns:

引用此目录中具有指定名称的子目录的新 DataLakeDirectoryClient 对象

listPaths

public PagedIterable listPaths()

返回此目录中文件/目录的延迟加载列表。 可根据需要自动检索新项时使用返回 PagedIterable<T> 的 。 有关详细信息,请参阅 Azure Docs

示例代码

client.listPaths().forEach(path -> System.out.printf("Name: %s%n", path.getName()));

Returns:

文件/目录的列表。

listPaths

public PagedIterable listPaths(boolean recursive, boolean userPrincipleNameReturned, Integer maxResults, Duration timeout)

返回此目录中文件/目录的延迟加载列表。 可根据需要自动检索新项时使用返回 PagedIterable<T> 的 。 有关详细信息,请参阅 Azure Docs

示例代码

client.listPaths(false, false, 10, timeout)
     .forEach(path -> System.out.printf("Name: %s%n", path.getName()));

Parameters:

recursive - 指定调用是否应以递归方式包含所有路径。
userPrincipleNameReturned - 如果为“true”,则 x-ms-owner、x-ms-group 和 x-ms-acl 响应标头中返回的用户标识值将从 Azure Active Directory 对象 ID 转换为用户主体名称。 如果为“false”,则值将作为 Azure Active Directory 对象 ID 返回。 默认值为 false。 请注意,不会转换组和应用程序对象 ID,因为它们没有唯一的友好名称。
maxResults - 指定每页返回的最大 Blob 数,包括所有 BlobPrefix 元素。 如果请求未指定 maxResults 或指定大于 5,000 的值,则服务器将返回每页最多 5,000 个项目。 如果按页循环访问,则传递给 byPage 方法(例如) PagedIterable#iterableByPage(int) 的页面大小将优先于此值。
timeout - 一个可选的超时值,超过该值 RuntimeException 将引发 。

Returns:

文件/目录的列表。

rename

public DataLakeDirectoryClient rename(String destinationFileSystem, String destinationPath)

将目录移动到文件系统中的另一个位置。 有关详细信息,请参阅 Azure Docs

示例代码

DataLakeDirectoryClient renamedClient = client.rename(fileSystemName, destinationPath);
 System.out.println("Directory Client has been renamed");

Parameters:

destinationFileSystem - 帐户中目标文件系统。 null ,用于当前文件系统。
destinationPath - 从文件系统中将目录重命名为 的相对路径不包括文件系统名称。 例如,如果要将 fileSystem = “myfilesystem”的目录,path = “mydir/mysubdir” 移动到 myfilesystem (中的另一个路径,例如: newdir) 然后设置 destinationPath = “newdir”

Returns:

DataLakeDirectoryClient用于与创建的新目录交互的 。

renameWithResponse

public Response renameWithResponse(String destinationFileSystem, String destinationPath, DataLakeRequestConditions sourceRequestConditions, DataLakeRequestConditions destinationRequestConditions, Duration timeout, Context context)

将目录移动到文件系统中的另一个位置。 有关详细信息,请参阅 Azure Docs

示例代码

DataLakeRequestConditions sourceRequestConditions = new DataLakeRequestConditions()
     .setLeaseId(leaseId);
 DataLakeRequestConditions destinationRequestConditions = new DataLakeRequestConditions();

 DataLakeDirectoryClient newRenamedClient = client.renameWithResponse(fileSystemName, destinationPath,
     sourceRequestConditions, destinationRequestConditions, timeout, new Context(key1, value1)).getValue();
 System.out.println("Directory Client has been renamed");

Parameters:

destinationFileSystem - 帐户中目标文件系统。 null ,用于当前文件系统。
destinationPath - 从文件系统中将目录重命名为 的相对路径不包括文件系统名称。 例如,如果要将 fileSystem = “myfilesystem”的目录,path = “mydir/mysubdir” 移动到 myfilesystem (中的另一个路径,例如: newdir) 然后设置 destinationPath = “newdir”
sourceRequestConditions - DataLakeRequestConditions 针对源。
destinationRequestConditions - DataLakeRequestConditions 针对目标。
timeout - 一个可选的超时值,超过该值 RuntimeException 将引发 。
context - 在服务调用期间通过 Http 管道传递的其他上下文。

Returns:

一个 Response<T> ,它 value 包含 DataLakeDirectoryClient 用于与创建的目录交互的 。

适用于