你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
DataLakeDirectoryClient 类
- java.
lang. Object - com.
azure. storage. file. datalake. DataLakePathClient - com.
azure. storage. file. datalake. DataLakeDirectoryClient
- com.
- com.
public class DataLakeDirectoryClient
extends DataLakePathClient
此类提供包含 Azure 存储 Data Lake 的目录操作的客户端。 此客户端提供的操作包括创建目录、删除目录、重命名目录、设置元数据和 http 标头、设置和检索访问控制、获取属性以及创建和删除文件和子目录。
此客户端通过 DataLakePathClientBuilder 实例化或通过 检索 getDirectoryClient(String directoryName)。
有关详细信息,请参阅 Azure Docs 。
方法摘要
方法继承自 DataLakePathClient
方法继承自 java.lang.Object
方法详细信息
createFile
public DataLakeFileClient createFile(String fileName)
在目录中创建新文件。 默认情况下,此方法不会覆盖现有文件。 有关详细信息,请参阅 Azure Docs。
示例代码
DataLakeFileClient fileClient = client.createFile(fileName);
Parameters:
Returns:
createFile
public DataLakeFileClient createFile(String fileName, boolean overwrite)
在目录中创建新文件。 有关详细信息,请参阅 Azure Docs。
示例代码
boolean overwrite = false; /* Default value. */
DataLakeFileClient fClient = client.createFile(fileName, overwrite);
Parameters:
Returns:
createFileIfNotExists
public DataLakeFileClient createFileIfNotExists(String fileName)
在目录中创建一个新文件(如果该文件不存在)。 有关详细信息,请参阅 Azure Docs。
示例代码
DataLakeFileClient fileClient = client.createFileIfNotExists(fileName);
Parameters:
Returns:
createFileIfNotExistsWithResponse
public Response
在目录中创建一个新文件(如果该文件不存在)。 有关详细信息,请参阅 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:
Returns:
createFileWithResponse
public Response
在目录中创建新文件。 如果已存在同名的文件,则会覆盖该文件。 有关详细信息,请参阅 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:
Returns:
createFileWithResponse
public Response
在目录中创建新文件。 如果已存在同名的文件,则会覆盖该文件。 有关详细信息,请参阅 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:
Returns:
createSubdirectory
public DataLakeDirectoryClient createSubdirectory(String subdirectoryName)
在目录中创建新的子目录。 默认情况下,此方法不会覆盖现有子目录。 有关详细信息,请参阅 Azure Docs。
示例代码
DataLakeDirectoryClient directoryClient = client.createSubdirectory(directoryName);
Parameters:
Returns:
createSubdirectory
public DataLakeDirectoryClient createSubdirectory(String subdirectoryName, boolean overwrite)
在目录中创建新的子目录。 有关详细信息,请参阅 Azure Docs。
示例代码
boolean overwrite = false; /* Default value. */
DataLakeDirectoryClient dClient = client.createSubdirectory(fileName, overwrite);
Parameters:
Returns:
createSubdirectoryIfNotExists
public DataLakeDirectoryClient createSubdirectoryIfNotExists(String subdirectoryName)
如果目录中不存在,则创建新的子目录。 有关详细信息,请参阅 Azure Docs。
示例代码
DataLakeDirectoryClient directoryClient = client.createSubdirectoryIfNotExists(directoryName);
Parameters:
Returns:
createSubdirectoryIfNotExistsWithResponse
public Response
在目录中创建新的子目录(如果不存在)。 有关详细信息,请参阅 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:
Returns:
createSubdirectoryWithResponse
public Response
在目录中创建新的子目录。 如果已存在同名的子目录,则将覆盖该子目录。 有关详细信息,请参阅 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:
Returns:
createSubdirectoryWithResponse
public Response
在目录中创建新的子目录。 如果已存在同名的子目录,则将覆盖该子目录。 有关详细信息,请参阅 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:
Returns:
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:
deleteFileIfExists
public boolean deleteFileIfExists(String fileName)
删除目录中的指定文件(如果存在)。 有关详细信息,请参阅 Azure Docs。
示例代码
boolean result = client.deleteFileIfExists(fileName);
System.out.println("Delete request completed: " + result);
Parameters:
Returns:
true
如果文件已成功删除,则为 ; false
如果文件不存在,则为 。deleteFileIfExistsWithResponse
public Response
删除目录中的指定文件(如果存在)。 有关详细信息,请参阅 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:
Returns:
deleteFileWithResponse
public Response
删除目录中的指定文件。 如果文件不存在,操作将失败。 有关详细信息,请参阅 Azure Docs。
示例代码
DataLakeRequestConditions requestConditions = new DataLakeRequestConditions()
.setLeaseId(leaseId);
client.deleteFileWithResponse(fileName, requestConditions, timeout, new Context(key1, value1));
System.out.println("Delete request completed");
Parameters:
Returns:
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
删除目录(如果存在)。
示例代码
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:
Returns:
deleteRecursively
public void deleteRecursively()
递归删除目录和目录中的所有内容。
示例代码
client.deleteRecursively();
System.out.println("Delete request completed");
有关详细信息,请参阅 Azure Docs
deleteRecursivelyWithResponse
public Response
递归删除目录和目录中的所有内容。
示例代码
DataLakeRequestConditions deleteRequestConditions = new DataLakeRequestConditions()
.setLeaseId(leaseId);
client.deleteRecursivelyWithResponse(deleteRequestConditions, timeout, new Context(key1, value1));
System.out.println("Delete request completed");
有关详细信息,请参阅 Azure Docs
Parameters:
Returns:
deleteSubdirectory
public void deleteSubdirectory(String subdirectoryName)
删除目录中的指定子目录。 如果子目录不存在或不为空,则操作将失败。 有关详细信息,请参阅 Azure Docs。
示例代码
client.deleteSubdirectory(directoryName);
System.out.println("Delete request completed");
Parameters:
deleteSubdirectoryIfExists
public boolean deleteSubdirectoryIfExists(String subdirectoryName)
删除目录中的指定子目录(如果存在)。 有关详细信息,请参阅 Azure Docs。
示例代码
boolean result = client.deleteSubdirectoryIfExists(directoryName);
System.out.println("Delete request completed: " + result);
Parameters:
Returns:
true
如果成功删除子目录,则为 ; false
如果子目录不存在,则为 。deleteSubdirectoryIfExistsWithResponse
public Response
删除目录中的指定子目录(如果存在)。 有关详细信息,请参阅 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:
Returns:
deleteSubdirectoryWithResponse
public Response
删除目录中的指定子目录。 如果子目录不存在或不为空,则操作将失败。 有关详细信息,请参阅 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:
Returns:
deleteWithResponse
public Response
删除目录。
示例代码
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:
Returns:
getCustomerProvidedKeyClient
public DataLakeDirectoryClient getCustomerProvidedKeyClient(CustomerProvidedKey customerProvidedKey)
使用指定的 DataLakeDirectoryClient 创建一个新的 customerProvidedKey
。
Overrides:
DataLakeDirectoryClient.getCustomerProvidedKeyClient(CustomerProvidedKey customerProvidedKey)Parameters:
Returns:
customerProvidedKey
的 。getDirectoryName
public String getDirectoryName()
获取此目录的名称,不包括其完整路径。
Returns:
getDirectoryPath
public String getDirectoryPath()
获取此目录的路径,不包括资源本身的名称。
Returns:
getDirectoryUrl
public String getDirectoryUrl()
获取此客户端在 Data Lake 服务上表示的目录的 URL。
Returns:
getFileClient
public DataLakeFileClient getFileClient(String fileName)
通过将 fileName 连接到 DataLakeDirectoryClient URL 的末尾来初始化新的 DataLakeFileClient 对象。 新的 DataLakeFileClient 使用与 DataLakeDirectoryClient 相同的请求策略管道。
Parameters:
String
,表示文件的名称。
示例代码
DataLakeFileClient dataLakeFileClient = client.getFileClient(fileName);
Returns:
getSubdirectoryClient
public DataLakeDirectoryClient getSubdirectoryClient(String subdirectoryName)
通过将 directoryName 连接到 DataLakeDirectoryClient URL 的末尾来初始化新的 DataLakeDirectoryClient 对象。 新的 DataLakeDirectoryClient 使用与 DataLakeDirectoryClient 相同的请求策略管道。
Parameters:
String
,表示子目录的名称。
示例代码
DataLakeDirectoryClient dataLakeDirectoryClient = client.getSubdirectoryClient(directoryName);
Returns:
listPaths
public PagedIterable
返回此目录中文件/目录的延迟加载列表。 可根据需要自动检索新项时使用返回 PagedIterable<T> 的 。 有关详细信息,请参阅 Azure Docs。
示例代码
client.listPaths().forEach(path -> System.out.printf("Name: %s%n", path.getName()));
Returns:
listPaths
public PagedIterable
返回此目录中文件/目录的延迟加载列表。 可根据需要自动检索新项时使用返回 PagedIterable<T> 的 。 有关详细信息,请参阅 Azure Docs。
示例代码
client.listPaths(false, false, 10, timeout)
.forEach(path -> System.out.printf("Name: %s%n", path.getName()));
Parameters:
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:
null
,用于当前文件系统。
Returns:
renameWithResponse
public Response
将目录移动到文件系统中的另一个位置。 有关详细信息,请参阅 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:
null
,用于当前文件系统。
Returns: