ShareDirectoryClient Class

  • java.lang.Object
    • com.azure.storage.file.share.ShareDirectoryClient

public class ShareDirectoryClient

This class provides a client that contains all the operations for interacting with directory in Azure Storage File Service. Operations allowed by the client are creating, deleting and listing subdirectory and file, retrieving properties, setting metadata and list or force close handles of the directory or file.

Instantiating an Synchronous Directory Client

ShareDirectoryClient client = new ShareFileClientBuilder()
     .connectionString("${connectionString}")
     .endpoint("${endpoint}")
     .buildDirectoryClient();

View ShareFileClientBuilder for additional ways to construct the client.

Method Summary

Modifier and Type Method and Description
ShareDirectoryInfo create()

Creates a directory in the file share and returns a response of ShareDirectoryInfo to interact with it.

ShareFileClient createFile(String fileName, long maxSize)

Creates a file in this directory with specific name, max number of results and returns a response of ShareDirectoryInfo to interact with it.

Response<ShareFileClient> createFileWithResponse(String fileName, long maxSize, ShareFileHttpHeaders httpHeaders, FileSmbProperties smbProperties, String filePermission, Map<String,String> metadata, ShareRequestConditions requestConditions, Duration timeout, Context context)

Creates a file in this directory with specific name and returns a response of ShareDirectoryInfo to interact with it.

Response<ShareFileClient> createFileWithResponse(String fileName, long maxSize, ShareFileHttpHeaders httpHeaders, FileSmbProperties smbProperties, String filePermission, Map<String,String> metadata, Duration timeout, Context context)

Creates a file in this directory with specific name and returns a response of ShareDirectoryInfo to interact with it.

ShareDirectoryInfo createIfNotExists()

Creates a directory in the file share if it does not exist.

Response<ShareDirectoryInfo> createIfNotExistsWithResponse(ShareDirectoryCreateOptions options, Duration timeout, Context context)

Creates a directory in the file share if it does not exist.

ShareDirectoryClient createSubdirectory(String subdirectoryName)

Creates a subdirectory under current directory with specific name and returns a response of ShareDirectoryClient to interact with it.

ShareDirectoryClient createSubdirectoryIfNotExists(String subdirectoryName)

Creates a subdirectory under current directory with specified name if it does not exist.

Response<ShareDirectoryClient> createSubdirectoryIfNotExistsWithResponse(String subdirectoryName, ShareDirectoryCreateOptions options, Duration timeout, Context context)

Creates a subdirectory under current directory with specific name and metadata if it does not exist.

Response<ShareDirectoryClient> createSubdirectoryWithResponse(String subdirectoryName, FileSmbProperties smbProperties, String filePermission, Map<String,String> metadata, Duration timeout, Context context)

Creates a subdirectory under current directory with specific name , metadata and returns a response of ShareDirectoryClient to interact with it.

Response<ShareDirectoryInfo> createWithResponse(FileSmbProperties smbProperties, String filePermission, Map<String,String> metadata, Duration timeout, Context context)

Creates a directory in the file share and returns a response of ShareDirectoryInfo to interact with it.

void delete()

Deletes the directory in the file share.

void deleteFile(String fileName)

Deletes the file with specific name in this directory.

boolean deleteFileIfExists(String fileName)

Deletes the file with specific name in this directory if it exists.

Response<Boolean> deleteFileIfExistsWithResponse(String fileName, ShareRequestConditions requestConditions, Duration timeout, Context context)

Deletes the file with specific name in this directory if it exists.

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

Deletes the file with specific name in this directory if it exists.

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

Deletes the file with specific name in this directory.

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

Deletes the file with specific name in this directory.

boolean deleteIfExists()

Deletes the directory in the file share if it exists.

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

Deletes the directory in the file share if it exists.

void deleteSubdirectory(String subdirectoryName)

Deletes the subdirectory with specific name in this directory.

boolean deleteSubdirectoryIfExists(String subdirectoryName)

Deletes the subdirectory with specific name in this directory if it exists.

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

Deletes the subdirectory with specific name in this directory if it exists.

Response<Void> deleteSubdirectoryWithResponse(String subdirectoryName, Duration timeout, Context context)

Deletes the subdirectory with specific name in this directory.

Response<Void> deleteWithResponse(Duration timeout, Context context)

Deletes the directory in the file share.

Boolean exists()

Determines if the directory this client represents exists in the cloud.

Response<Boolean> existsWithResponse(Duration timeout, Context context)

Determines if the directory this client represents exists in the cloud.

CloseHandlesInfo forceCloseAllHandles(boolean recursive, Duration timeout, Context context)

Closes all handles opened on the directory at the service.

CloseHandlesInfo forceCloseHandle(String handleId)

Closes a handle on the directory at the service.

Response<CloseHandlesInfo> forceCloseHandleWithResponse(String handleId, Duration timeout, Context context)

Closes a handle on the directory at the service.

String generateSas(ShareServiceSasSignatureValues shareServiceSasSignatureValues)

Generates a service SAS for the directory using the specified ShareServiceSasSignatureValues

String generateSas(ShareServiceSasSignatureValues shareServiceSasSignatureValues, Context context)

Generates a service SAS for the directory using the specified ShareServiceSasSignatureValues

String getAccountName()

Get associated account name.

String getDirectoryPath()

Get the directory path of the client.

String getDirectoryUrl()

Get the url of the storage directory client.

ShareFileClient getFileClient(String fileName)

Constructs a ShareFileClient that interacts with the specified file.

HttpPipeline getHttpPipeline()

Gets the HttpPipeline powering this client.

ShareDirectoryProperties getProperties()

Retrieves the properties of this directory.

Response<ShareDirectoryProperties> getPropertiesWithResponse(Duration timeout, Context context)

Retrieves the properties of this directory.

ShareServiceVersion getServiceVersion()

Gets the service version the client is using.

String getShareName()

Get the share name of directory client.

String getShareSnapshotId()

Get snapshot id which attached to ShareDirectoryClient.

ShareDirectoryClient getSubdirectoryClient(String subdirectoryName)

Constructs a ShareDirectoryClient that interacts with the specified directory.

PagedIterable<ShareFileItem> listFilesAndDirectories()

Lists all sub-directories and files in this directory without their prefix or maxResult in single page.

PagedIterable<ShareFileItem> listFilesAndDirectories(ShareListFilesAndDirectoriesOptions options, Duration timeout, Context context)

Lists all sub-directories and files in this directory with their prefix or snapshots.

PagedIterable<ShareFileItem> listFilesAndDirectories(String prefix, Integer maxResultsPerPage, Duration timeout, Context context)

Lists all sub-directories and files in this directory with their prefix or snapshots.

PagedIterable<HandleItem> listHandles(Integer maxResultsPerPage, boolean recursive, Duration timeout, Context context)

List of open handles on a directory or a file.

ShareDirectoryClient rename(String destinationPath)

Moves the directory to another location within the share.

Response<ShareDirectoryClient> renameWithResponse(ShareFileRenameOptions options, Duration timeout, Context context)

Moves the directory to another location within the share.

ShareDirectorySetMetadataInfo setMetadata(Map<String,String> metadata)

Sets the user-defined metadata to associate to the directory.

Response<ShareDirectorySetMetadataInfo> setMetadataWithResponse(Map<String,String> metadata, Duration timeout, Context context)

Sets the user-defined metadata to associate to the directory.

ShareDirectoryInfo setProperties(FileSmbProperties smbProperties, String filePermission)

Sets the properties of this directory.

Response<ShareDirectoryInfo> setPropertiesWithResponse(FileSmbProperties smbProperties, String filePermission, Duration timeout, Context context)

Sets the properties of this directory.

Methods inherited from java.lang.Object

Method Details

create

public ShareDirectoryInfo create()

Creates a directory in the file share and returns a response of ShareDirectoryInfo to interact with it.

Code Samples

Create the directory

shareDirectoryClient.create();
 System.out.println("Completed creating the directory. ");

For more information, see the Azure Docs.

Returns:

createFile

public ShareFileClient createFile(String fileName, long maxSize)

Creates a file in this directory with specific name, max number of results and returns a response of ShareDirectoryInfo to interact with it.

Code Samples

Create 1k file with named "myFile"

ShareFileClient response = shareDirectoryClient.createFile("myfile", 1024);
 System.out.println("Completed creating the file: " + response);

For more information, see the Azure Docs.

Parameters:

fileName - Name of the file
maxSize - Size of the file

Returns:

The ShareFileClient

createFileWithResponse

public Response createFileWithResponse(String fileName, long maxSize, ShareFileHttpHeaders httpHeaders, FileSmbProperties smbProperties, String filePermission, Map metadata, ShareRequestConditions requestConditions, Duration timeout, Context context)

Creates a file in this directory with specific name and returns a response of ShareDirectoryInfo to interact with it.

Code Samples

Create the file named "myFile"

ShareFileHttpHeaders httpHeaders = new ShareFileHttpHeaders()
     .setContentType("text/html")
     .setContentEncoding("gzip")
     .setContentLanguage("en")
     .setCacheControl("no-transform")
     .setContentDisposition("attachment");
 FileSmbProperties smbProperties = new FileSmbProperties()
     .setNtfsFileAttributes(EnumSet.of(NtfsFileAttributes.READ_ONLY))
     .setFileCreationTime(OffsetDateTime.now())
     .setFileLastWriteTime(OffsetDateTime.now())
     .setFilePermissionKey("filePermissionKey");
 String filePermission = "filePermission";
 // NOTE: filePermission and filePermissionKey should never be both set

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

 Response<ShareFileClient> response = shareDirectoryClient.createFileWithResponse("myFile", 1024,
     httpHeaders, smbProperties, filePermission, Collections.singletonMap("directory", "metadata"),
     requestConditions, Duration.ofSeconds(1), new Context(key1, value1));
 System.out.println("Completed creating the file with status code: " + response.getStatusCode());

For more information, see the Azure Docs.

Parameters:

fileName - Name of the file
maxSize - Max size of the file
httpHeaders - The user settable file http headers.
smbProperties - The user settable file smb properties.
filePermission - THe file permission of the file.
metadata - Optional name-value pairs associated with the file as metadata.
requestConditions - ShareRequestConditions
timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
context - Additional context that is passed through the Http pipeline during the service call.

Returns:

A response containing the directory info and the status of creating the directory.

createFileWithResponse

public Response createFileWithResponse(String fileName, long maxSize, ShareFileHttpHeaders httpHeaders, FileSmbProperties smbProperties, String filePermission, Map metadata, Duration timeout, Context context)

Creates a file in this directory with specific name and returns a response of ShareDirectoryInfo to interact with it.

Code Samples

Create the file named "myFile"

ShareFileHttpHeaders httpHeaders = new ShareFileHttpHeaders()
     .setContentType("text/html")
     .setContentEncoding("gzip")
     .setContentLanguage("en")
     .setCacheControl("no-transform")
     .setContentDisposition("attachment");
 FileSmbProperties smbProperties = new FileSmbProperties()
     .setNtfsFileAttributes(EnumSet.of(NtfsFileAttributes.READ_ONLY))
     .setFileCreationTime(OffsetDateTime.now())
     .setFileLastWriteTime(OffsetDateTime.now())
     .setFilePermissionKey("filePermissionKey");
 String filePermission = "filePermission";
 // NOTE: filePermission and filePermissionKey should never be both set
 Response<ShareFileClient> response = shareDirectoryClient.createFileWithResponse("myFile", 1024,
     httpHeaders, smbProperties, filePermission, Collections.singletonMap("directory", "metadata"),
     Duration.ofSeconds(1), new Context(key1, value1));
 System.out.println("Completed creating the file with status code: " + response.getStatusCode());

For more information, see the Azure Docs.

Parameters:

fileName - Name of the file
maxSize - Max size of the file
httpHeaders - The user settable file http headers.
smbProperties - The user settable file smb properties.
filePermission - THe file permission of the file.
metadata - Optional name-value pairs associated with the file as metadata.
timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
context - Additional context that is passed through the Http pipeline during the service call.

Returns:

A response containing the directory info and the status of creating the directory.

createIfNotExists

public ShareDirectoryInfo createIfNotExists()

Creates a directory in the file share if it does not exist.

Code Samples

Create the directory

ShareDirectoryClient shareDirectoryClient = createClientWithSASToken();
 ShareDirectoryInfo shareDirectoryInfo = shareDirectoryClient.createIfNotExists();
 System.out.printf("Last Modified Time:%s", shareDirectoryInfo.getLastModified());

For more information, see the Azure Docs.

Returns:

A ShareDirectoryInfo that contains information about the created directory.

createIfNotExistsWithResponse

public Response createIfNotExistsWithResponse(ShareDirectoryCreateOptions options, Duration timeout, Context context)

Creates a directory in the file share if it does not exist.

Code Samples

Create the directory

ShareDirectoryClient directoryClient = createClientWithSASToken();
 FileSmbProperties smbProperties = new FileSmbProperties();
 String filePermission = "filePermission";
 ShareDirectoryCreateOptions options = new ShareDirectoryCreateOptions().setSmbProperties(smbProperties)
     .setFilePermission(filePermission).setMetadata(Collections.singletonMap("directory", "metadata"));

 Response<ShareDirectoryInfo> response = directoryClient.createIfNotExistsWithResponse(options,
     Duration.ofSeconds(1), 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());
 }

For more information, see the Azure Docs.

Parameters:

timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
context - Additional context that is passed through the Http pipeline during the service call.

Returns:

A reactive Response<T> signaling completion, whose value contains a ShareDirectoryInfo containing information about the directory. If Response<T>'s status code is 201, a new directory was successfully created. If status code is 409, a directory already existed at this location.

createSubdirectory

public ShareDirectoryClient createSubdirectory(String subdirectoryName)

Creates a subdirectory under current directory with specific name and returns a response of ShareDirectoryClient to interact with it.

Code Samples

Create the sub directory "subdir"

shareDirectoryClient.createSubdirectory("subdir");
 System.out.println("Completed creating the subdirectory.");

For more information, see the Azure Docs.

Parameters:

subdirectoryName - Name of the subdirectory

Returns:

The subdirectory client.

createSubdirectoryIfNotExists

public ShareDirectoryClient createSubdirectoryIfNotExists(String subdirectoryName)

Creates a subdirectory under current directory with specified name if it does not exist.

Code Samples

Create the sub directory "subdir"

ShareDirectoryClient subdirectoryClient = shareDirectoryClient.createSubdirectoryIfNotExists("subdir");

For more information, see the Azure Docs.

Parameters:

subdirectoryName - Name of the subdirectory

Returns:

A ShareDirectoryClient used to interact with the subdirectory created.

createSubdirectoryIfNotExistsWithResponse

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

Creates a subdirectory under current directory with specific name and metadata if it does not exist.

Code Samples

Create the subdirectory named "subdir", with metadata

FileSmbProperties smbProperties = new FileSmbProperties();
 String filePermission = "filePermission";
 ShareDirectoryCreateOptions options = new ShareDirectoryCreateOptions().setSmbProperties(smbProperties)
     .setFilePermission(filePermission).setMetadata(Collections.singletonMap("directory", "metadata"));

 Response<ShareDirectoryClient> response = shareDirectoryClient
     .createSubdirectoryIfNotExistsWithResponse("subdir", options, Duration.ofSeconds(1),
         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());
 }

For more information, see the Azure Docs.

Parameters:

subdirectoryName - Name of the subdirectory
timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
context - Additional context that is passed through the Http pipeline during the service call.

Returns:

A Response<T> whose value contains the ShareDirectoryClient used to interact with the subdirectory created. If Response<T>'s status code is 201, a new subdirectory was successfully created. If status code is 409, a subdirectory with the same name already existed at this location.

createSubdirectoryWithResponse

public Response createSubdirectoryWithResponse(String subdirectoryName, FileSmbProperties smbProperties, String filePermission, Map metadata, Duration timeout, Context context)

Creates a subdirectory under current directory with specific name , metadata and returns a response of ShareDirectoryClient to interact with it.

Code Samples

Create the subdirectory named "subdir", with metadata

FileSmbProperties smbProperties = new FileSmbProperties();
 String filePermission = "filePermission";
 Response<ShareDirectoryClient> response = shareDirectoryClient.createSubdirectoryWithResponse("subdir",
     smbProperties, filePermission, Collections.singletonMap("directory", "metadata"),
     Duration.ofSeconds(1), new Context(key1, value1));
 System.out.printf("Creating the sub directory completed with status code %d", response.getStatusCode());

For more information, see the Azure Docs.

Parameters:

subdirectoryName - Name of the subdirectory
smbProperties - The SMB properties of the directory.
filePermission - The file permission of the directory.
metadata - Optional metadata to associate with the subdirectory
timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
context - Additional context that is passed through the Http pipeline during the service call.

Returns:

A response containing the subdirectory client and the status of creating the directory.

createWithResponse

public Response createWithResponse(FileSmbProperties smbProperties, String filePermission, Map metadata, Duration timeout, Context context)

Creates a directory in the file share and returns a response of ShareDirectoryInfo to interact with it.

Code Samples

Create the directory

FileSmbProperties smbProperties = new FileSmbProperties();
 String filePermission = "filePermission";
 Response<ShareDirectoryInfo> response = shareDirectoryClient.createWithResponse(smbProperties, filePermission,
     Collections.singletonMap("directory", "metadata"), Duration.ofSeconds(1), new Context(key1, value1));
 System.out.println("Completed creating the directory with status code: " + response.getStatusCode());

For more information, see the Azure Docs.

Parameters:

smbProperties - The SMB properties of the directory.
filePermission - The file permission of the directory.
metadata - Optional metadata to associate with the directory.
timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
context - Additional context that is passed through the Http pipeline during the service call.

Returns:

A response containing the directory info and the status of creating the directory.

delete

public void delete()

Deletes the directory in the file share. The directory must be empty before it can be deleted.

Code Samples

Delete the directory

shareDirectoryClient.delete();
 System.out.println("Completed deleting the file.");

For more information, see the Azure Docs.

deleteFile

public void deleteFile(String fileName)

Deletes the file with specific name in this directory.

Code Samples

Delete the file "filetest"

shareDirectoryClient.deleteFile("myfile");
 System.out.println("Completed deleting the file.");

For more information, see the Azure Docs.

Parameters:

fileName - Name of the file

deleteFileIfExists

public boolean deleteFileIfExists(String fileName)

Deletes the file with specific name in this directory if it exists.

Code Samples

Delete the file "filetest"

boolean result = shareDirectoryClient.deleteFileIfExists("myfile");
 System.out.println("File deleted: " + result);

For more information, see the Azure Docs.

Parameters:

fileName - Name of the file

Returns:

true if the file is successfully deleted, false if the file does not exist.

deleteFileIfExistsWithResponse

public Response deleteFileIfExistsWithResponse(String fileName, ShareRequestConditions requestConditions, Duration timeout, Context context)

Deletes the file with specific name in this directory if it exists.

Code Samples

Delete the file "filetest"

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

 Response<Boolean> fileResponse = shareDirectoryClient.deleteFileIfExistsWithResponse("myfile", requestConditions,
     Duration.ofSeconds(1), new Context(key1, value1));
 if (fileResponse.getStatusCode() == 404) {
     System.out.println("Does not exist.");
 } else {
     System.out.printf("Delete completed with status %d%n", response.getStatusCode());
 }

For more information, see the Azure Docs.

Parameters:

fileName - Name of the file
requestConditions - ShareRequestConditions
timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
context - Additional context that is passed through the Http pipeline during the service call.

Returns:

A response containing status code and HTTP headers. If Response<T>'s status code is 202, the file was successfully deleted. If status code is 404, the file does not exist.

deleteFileIfExistsWithResponse

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

Deletes the file with specific name in this directory if it exists.

Code Samples

Delete the file "filetest"

Response<Boolean> response = shareDirectoryClient.deleteFileIfExistsWithResponse("myfile",
     Duration.ofSeconds(1), 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());
 }

For more information, see the Azure Docs.

Parameters:

fileName - Name of the file
timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
context - Additional context that is passed through the Http pipeline during the service call.

Returns:

A response containing status code and HTTP headers. If Response<T>'s status code is 202, the file was successfully deleted. If status code is 404, the file does not exist.

deleteFileWithResponse

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

Deletes the file with specific name in this directory.

Code Samples

Delete the file "filetest"

ShareRequestConditions requestConditions = new ShareRequestConditions().setLeaseId(leaseId);
 Response<Void> response = shareDirectoryClient.deleteFileWithResponse("myfile", requestConditions,
     Duration.ofSeconds(1), new Context(key1, value1));
 System.out.println("Completed deleting the file with status code: " + response.getStatusCode());

For more information, see the Azure Docs.

Parameters:

fileName - Name of the file
requestConditions - ShareRequestConditions
timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
context - Additional context that is passed through the Http pipeline during the service call.

Returns:

A response that only contains headers and response status code

deleteFileWithResponse

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

Deletes the file with specific name in this directory.

Code Samples

Delete the file "filetest"

Response<Void> response = shareDirectoryClient.deleteFileWithResponse("myfile",
     Duration.ofSeconds(1), new Context(key1, value1));
 System.out.println("Completed deleting the file with status code: " + response.getStatusCode());

For more information, see the Azure Docs.

Parameters:

fileName - Name of the file
timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
context - Additional context that is passed through the Http pipeline during the service call.

Returns:

A response that only contains headers and response status code

deleteIfExists

public boolean deleteIfExists()

Deletes the directory in the file share if it exists. The directory must be empty before it can be deleted.

Code Samples

Delete the directory

ShareDirectoryClient shareDirectoryClient = createClientWithSASToken();
 boolean result = shareDirectoryClient.deleteIfExists();
 System.out.println("Directory deleted: " + result);

For more information, see the Azure Docs.

Returns:

true if the directory is successfully deleted, false if the directory does not exist.

deleteIfExistsWithResponse

public Response deleteIfExistsWithResponse(Duration timeout, Context context)

Deletes the directory in the file share if it exists. The directory must be empty before it can be deleted.

Code Samples

Delete the directory

Response<Boolean> response = shareDirectoryClient.deleteIfExistsWithResponse(Duration.ofSeconds(1),
     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());
 }

For more information, see the Azure Docs.

Parameters:

timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
context - Additional context that is passed through the Http pipeline during the service call.

Returns:

A response containing status code and HTTP headers. If Response<T>'s status code is 202, the directory was successfully deleted. If status code is 404, the directory does not exist.

deleteSubdirectory

public void deleteSubdirectory(String subdirectoryName)

Deletes the subdirectory with specific name in this directory. The directory must be empty before it can be deleted.

Code Samples

Delete the subdirectory named "subdir"

shareDirectoryClient.deleteSubdirectory("mysubdirectory");
 System.out.println("Complete deleting the subdirectory.");

For more information, see the Azure Docs.

Parameters:

subdirectoryName - Name of the subdirectory

deleteSubdirectoryIfExists

public boolean deleteSubdirectoryIfExists(String subdirectoryName)

Deletes the subdirectory with specific name in this directory if it exists. The directory must be empty before it can be deleted.

Code Samples

Delete the subdirectory named "subdir"

boolean result = shareDirectoryClient.deleteSubdirectoryIfExists("mysubdirectory");
 System.out.println("Subdirectory deleted: " + result);

For more information, see the Azure Docs.

Parameters:

subdirectoryName - Name of the subdirectory

Returns:

true if subdirectory is successfully deleted, false if subdirectory does not exist.

deleteSubdirectoryIfExistsWithResponse

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

Deletes the subdirectory with specific name in this directory if it exists. The directory must be empty before it can be deleted.

Code Samples

Delete the subdirectory named "mysubdirectory"

Response<Boolean> response = shareDirectoryClient.deleteSubdirectoryIfExistsWithResponse("mysubdirectory",
     Duration.ofSeconds(1), 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());
 }

For more information, see the Azure Docs.

Parameters:

subdirectoryName - Name of the subdirectory
timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
context - Additional context that is passed through the Http pipeline during the service call.

Returns:

A response containing status code and HTTP headers. If Response<T>'s status code is 202, the subdirectory was successfully deleted. If status code is 404, the subdirectory does not exist.

deleteSubdirectoryWithResponse

public Response deleteSubdirectoryWithResponse(String subdirectoryName, Duration timeout, Context context)

Deletes the subdirectory with specific name in this directory. The directory must be empty before it can be deleted.

Code Samples

Delete the subdirectory named "subdir"

Response<Void> response = shareDirectoryClient.deleteSubdirectoryWithResponse("mysubdirectory",
     Duration.ofSeconds(1), new Context(key1, value1));
 System.out.println("Completed deleting the subdirectory with status code: " + response.getStatusCode());

For more information, see the Azure Docs.

Parameters:

subdirectoryName - Name of the subdirectory
timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
context - Additional context that is passed through the Http pipeline during the service call.

Returns:

A response that only contains headers and response status code

deleteWithResponse

public Response deleteWithResponse(Duration timeout, Context context)

Deletes the directory in the file share. The directory must be empty before it can be deleted.

Code Samples

Delete the directory

Response<Void> response = shareDirectoryClient.deleteWithResponse(Duration.ofSeconds(1), new Context(key1, value1));
 System.out.println("Completed deleting the file with status code: " + response.getStatusCode());

For more information, see the Azure Docs.

Parameters:

timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
context - Additional context that is passed through the Http pipeline during the service call.

Returns:

A response that only contains headers and response status code

exists

public Boolean exists()

Determines if the directory this client represents exists in the cloud.

Code Samples

System.out.printf("Exists? %b%n", client.exists());

Returns:

Flag indicating existence of the directory.

existsWithResponse

public Response existsWithResponse(Duration timeout, Context context)

Determines if the directory this client represents exists in the cloud.

Code Samples

Context context = new Context("Key", "Value");
 System.out.printf("Exists? %b%n", client.existsWithResponse(timeout, context).getValue());

Parameters:

timeout - An optional timeout value beyond which a RuntimeException will be raised.
context - Additional context that is passed through the Http pipeline during the service call.

Returns:

Flag indicating existence of the directory.

forceCloseAllHandles

public CloseHandlesInfo forceCloseAllHandles(boolean recursive, Duration timeout, Context context)

Closes all handles opened on the directory at the service.

Code Samples

Force close all handles recursively.

CloseHandlesInfo closeHandlesInfo = shareDirectoryClient.forceCloseAllHandles(true, Duration.ofSeconds(30),
     Context.NONE);
 System.out.printf("Closed %d open handles on the directory%n", closeHandlesInfo.getClosedHandles());
 System.out.printf("Failed to close %d open handles on the directory%n", closeHandlesInfo.getFailedHandles());

For more information, see the Azure Docs.

Parameters:

recursive - Flag indicating if the operation should apply to all subdirectories and files contained in the directory.
timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
context - Additional context that is passed through the Http pipeline during the service call.

Returns:

Information about the closed handles

forceCloseHandle

public CloseHandlesInfo forceCloseHandle(String handleId)

Closes a handle on the directory at the service. This is intended to be used alongside listHandles(Integer maxResultsPerPage, boolean recursive, Duration timeout, Context context).

Code Samples

Force close handles returned by list handles.

shareDirectoryClient.listHandles(null, true, Duration.ofSeconds(30), Context.NONE).forEach(handleItem -> {
     shareDirectoryClient.forceCloseHandle(handleItem.getHandleId());
     System.out.printf("Closed handle %s on resource %s%n", handleItem.getHandleId(), handleItem.getPath());
 });

For more information, see the Azure Docs.

Parameters:

handleId - Handle ID to be closed.

Returns:

Information about the closed handles.

forceCloseHandleWithResponse

public Response forceCloseHandleWithResponse(String handleId, Duration timeout, Context context)

Closes a handle on the directory at the service. This is intended to be used alongside listHandles(Integer maxResultsPerPage, boolean recursive, Duration timeout, Context context).

Code Samples

Force close handles returned by list handles.

shareDirectoryClient.listHandles(null, true, Duration.ofSeconds(30), Context.NONE).forEach(handleItem -> {
     Response<CloseHandlesInfo> closeResponse = shareDirectoryClient.forceCloseHandleWithResponse(
         handleItem.getHandleId(), Duration.ofSeconds(30), Context.NONE);
     System.out.printf("Closing handle %s on resource %s completed with status code %d%n",
         handleItem.getHandleId(), handleItem.getPath(), closeResponse.getStatusCode());
 });

For more information, see the Azure Docs.

Parameters:

handleId - Handle ID to be clsoed.
timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
context - Additional context that is passed through the Http pipeline during the service call.

Returns:

A response that contains information about the closed handles, headers and response status code.

generateSas

public String generateSas(ShareServiceSasSignatureValues shareServiceSasSignatureValues)

Generates a service SAS for the directory using the specified ShareServiceSasSignatureValues

Note : The client must be authenticated via StorageSharedKeyCredential

See ShareServiceSasSignatureValues for more information on how to construct a service SAS.

Code Samples

OffsetDateTime expiryTime = OffsetDateTime.now().plusDays(1);
 ShareFileSasPermission permission = new ShareFileSasPermission().setReadPermission(true);

 ShareServiceSasSignatureValues values = new ShareServiceSasSignatureValues(expiryTime, permission)
     .setStartTime(OffsetDateTime.now());

 shareDirectoryClient.generateSas(values); // Client must be authenticated via StorageSharedKeyCredential

Parameters:

shareServiceSasSignatureValues - ShareServiceSasSignatureValues

Returns:

A String representing the SAS query parameters.

generateSas

public String generateSas(ShareServiceSasSignatureValues shareServiceSasSignatureValues, Context context)

Generates a service SAS for the directory using the specified ShareServiceSasSignatureValues

Note : The client must be authenticated via StorageSharedKeyCredential

See ShareServiceSasSignatureValues for more information on how to construct a service SAS.

Code Samples

OffsetDateTime expiryTime = OffsetDateTime.now().plusDays(1);
 ShareFileSasPermission permission = new ShareFileSasPermission().setReadPermission(true);

 ShareServiceSasSignatureValues values = new ShareServiceSasSignatureValues(expiryTime, permission)
     .setStartTime(OffsetDateTime.now());

 // Client must be authenticated via StorageSharedKeyCredential
 shareDirectoryClient.generateSas(values, new Context("key", "value"));

Parameters:

shareServiceSasSignatureValues - ShareServiceSasSignatureValues
context - Additional context that is passed through the code when generating a SAS.

Returns:

A String representing the SAS query parameters.

getAccountName

public String getAccountName()

Get associated account name.

Returns:

account name associated with this storage resource.

getDirectoryPath

public String getDirectoryPath()

Get the directory path of the client.

Get directory path.

String directoryPath = shareDirectoryClient.getDirectoryPath();
 System.out.println("The name of the directory is " + directoryPath);

Returns:

The path of the directory.

getDirectoryUrl

public String getDirectoryUrl()

Get the url of the storage directory client.

Returns:

the URL of the storage directory client.

getFileClient

public ShareFileClient getFileClient(String fileName)

Constructs a ShareFileClient that interacts with the specified file.

If the file doesn't exist in this directory create(long maxSize) create} in the client will need to be called before interaction with the file can happen.

Parameters:

fileName - Name of the file

Returns:

a ShareFileClient that interacts with the specified share

getHttpPipeline

public HttpPipeline getHttpPipeline()

Gets the HttpPipeline powering this client.

Returns:

The pipeline.

getProperties

public ShareDirectoryProperties getProperties()

Retrieves the properties of this directory. The properties includes directory metadata, last modified date, is server encrypted, and eTag.

Code Samples

Retrieve directory properties

ShareDirectoryProperties response = shareDirectoryClient.getProperties();
 System.out.printf("Directory latest modified date is %s.", response.getLastModified());

For more information, see the Azure Docs.

Returns:

Storage directory properties

getPropertiesWithResponse

public Response getPropertiesWithResponse(Duration timeout, Context context)

Retrieves the properties of this directory. The properties includes directory metadata, last modified date, is server encrypted, and eTag.

Code Samples

Retrieve directory properties

Response<ShareDirectoryProperties> response = shareDirectoryClient.getPropertiesWithResponse(
     Duration.ofSeconds(1), new Context(key1, value1));
 System.out.printf("Directory latest modified date is %s.", response.getValue().getLastModified());

For more information, see the Azure Docs.

Parameters:

timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
context - Additional context that is passed through the Http pipeline during the service call.

Returns:

A response containing the storage directory properties with response status code and headers

getServiceVersion

public ShareServiceVersion getServiceVersion()

Gets the service version the client is using.

Returns:

the service version the client is using.

getShareName

public String getShareName()

Get the share name of directory client.

Get the share name.

String shareName = directoryAsyncClient.getShareName();
 System.out.println("The share name of the directory is " + shareName);

Returns:

The share name of the directory.

getShareSnapshotId

public String getShareSnapshotId()

Get snapshot id which attached to ShareDirectoryClient. Return null if no snapshot id attached.

Code Samples

Get the share snapshot id.

OffsetDateTime currentTime = OffsetDateTime.of(LocalDateTime.now(), ZoneOffset.UTC);
 ShareDirectoryClient shareDirectoryClient = new ShareFileClientBuilder()
     .endpoint("https://${accountName}.file.core.windows.net")
     .sasToken("${SASToken}")
     .shareName("myshare")
     .resourcePath("mydirectory")
     .snapshot(currentTime.toString())
     .buildDirectoryClient();

 System.out.printf("Snapshot ID: %s%n", shareDirectoryClient.getShareSnapshotId());

Returns:

The snapshot id which is a unique DateTime value that identifies the share snapshot to its base share.

getSubdirectoryClient

public ShareDirectoryClient getSubdirectoryClient(String subdirectoryName)

Constructs a ShareDirectoryClient that interacts with the specified directory.

If the file doesn't exist in this directory create() create} in the client will need to be called before interaction with the directory can happen.

Parameters:

subdirectoryName - Name of the directory

Returns:

a ShareDirectoryClient that interacts with the specified directory

listFilesAndDirectories

public PagedIterable listFilesAndDirectories()

Lists all sub-directories and files in this directory without their prefix or maxResult in single page.

Code Samples

List all sub-directories and files in the account

shareDirectoryClient.listFilesAndDirectories().forEach(
     fileRef -> System.out.printf("Is the resource a directory? %b. The resource name is: %s.",
         fileRef.isDirectory(), fileRef.getName())
 );

For more information, see the Azure Docs.

Returns:

ShareFileItem in the storage directory

listFilesAndDirectories

public PagedIterable listFilesAndDirectories(ShareListFilesAndDirectoriesOptions options, Duration timeout, Context context)

Lists all sub-directories and files in this directory with their prefix or snapshots.

Code Samples

List all sub-directories and files in this directory with "subdir" prefix and return 10 results in the account

shareDirectoryClient.listFilesAndDirectories(new ShareListFilesAndDirectoriesOptions()
         .setPrefix("subdir").setMaxResultsPerPage(10), Duration.ofSeconds(1), new Context(key1, value1))
     .forEach(fileRef -> System.out.printf("Is the resource a directory? %b. The resource name is: %s.",
         fileRef.isDirectory(), fileRef.getName()));

For more information, see the Azure Docs.

Parameters:

options - Optional parameters.
timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
context - Additional context that is passed through the Http pipeline during the service call.

Returns:

ShareFileItem in this directory with prefix and max number of return results.

listFilesAndDirectories

public PagedIterable listFilesAndDirectories(String prefix, Integer maxResultsPerPage, Duration timeout, Context context)

Lists all sub-directories and files in this directory with their prefix or snapshots.

Code Samples

List all sub-directories and files in this directory with "subdir" prefix and return 10 results in the account

shareDirectoryClient.listFilesAndDirectories("subdir", 10, Duration.ofSeconds(1),
     new Context(key1, value1)).forEach(
         fileRef -> System.out.printf("Is the resource a directory? %b. The resource name is: %s.",
             fileRef.isDirectory(), fileRef.getName())
 );

For more information, see the Azure Docs.

Parameters:

prefix - Optional prefix which filters the results to return only files and directories whose name begins with.
maxResultsPerPage - Optional maximum number of files and/or directories to return per page. If the request does not specify maxResultsPerPage or specifies a value greater than 5,000, the server will return up to 5,000 items. If iterating by page, the page size passed to byPage methods such as PagedIterable#iterableByPage(int) will be preferred over this value.
timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
context - Additional context that is passed through the Http pipeline during the service call.

Returns:

ShareFileItem in this directory with prefix and max number of return results.

listHandles

public PagedIterable listHandles(Integer maxResultsPerPage, boolean recursive, Duration timeout, Context context)

List of open handles on a directory or a file.

Code Samples

Get 10 handles with recursive call.

Iterable<HandleItem> result = shareDirectoryClient.listHandles(10, true, Duration.ofSeconds(1),
     new Context(key1, value1));
 System.out.printf("Get handles completed with handle id %s", result.iterator().next().getHandleId());

For more information, see the Azure Docs.

Parameters:

maxResultsPerPage - Optional maximum number of results will return per page
recursive - Specifies operation should apply to the directory specified in the URI, its files, its subdirectories and their files.
timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
context - Additional context that is passed through the Http pipeline during the service call.

Returns:

HandleItem in the directory that satisfy the requirements

rename

public ShareDirectoryClient rename(String destinationPath)

Moves the directory to another location within the share. For more information see the Azure Docs.

Code Samples

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

Parameters:

destinationPath - Relative path from the share to rename the directory to.

Returns:

A ShareDirectoryClient used to interact with the new file created.

renameWithResponse

public Response renameWithResponse(ShareFileRenameOptions options, Duration timeout, Context context)

Moves the directory to another location within the share. For more information see the Azure Docs.

Code Samples

FileSmbProperties smbProperties = new FileSmbProperties()
     .setNtfsFileAttributes(EnumSet.of(NtfsFileAttributes.READ_ONLY))
     .setFileCreationTime(OffsetDateTime.now())
     .setFileLastWriteTime(OffsetDateTime.now())
     .setFilePermissionKey("filePermissionKey");
 ShareFileRenameOptions options = new ShareFileRenameOptions(destinationPath)
     .setDestinationRequestConditions(new ShareRequestConditions().setLeaseId(leaseId))
     .setSourceRequestConditions(new ShareRequestConditions().setLeaseId(leaseId))
     .setIgnoreReadOnly(false)
     .setReplaceIfExists(false)
     .setFilePermission("filePermission")
     .setSmbProperties(smbProperties);

 ShareDirectoryClient newRenamedClient = client.renameWithResponse(options, timeout,
     new Context(key1, value1)).getValue();
 System.out.println("Directory Client has been renamed");

Parameters:

timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
context - Additional context that is passed through the Http pipeline during the service call.

Returns:

A Response<T> whose value contains a ShareDirectoryClient used to interact with the file created.

setMetadata

public ShareDirectorySetMetadataInfo setMetadata(Map metadata)

Sets the user-defined metadata to associate to the directory.

If null is passed for the metadata it will clear the metadata associated to the directory.

Code Samples

Set the metadata to "directory:updatedMetadata"

ShareDirectorySetMetadataInfo response =
     shareDirectoryClient.setMetadata(Collections.singletonMap("directory", "updatedMetadata"));
 System.out.printf("Setting the directory metadata completed with updated etag %s", response.getETag());

Clear the metadata of the directory

ShareDirectorySetMetadataInfo response = shareDirectoryClient.setMetadata(null);
 System.out.printf("Cleared metadata.");

For more information, see the Azure Docs.

Parameters:

metadata - Optional metadata to set on the directory, if null is passed the metadata for the directory is cleared

Returns:

The information about the directory

setMetadataWithResponse

public Response setMetadataWithResponse(Map metadata, Duration timeout, Context context)

Sets the user-defined metadata to associate to the directory.

If null is passed for the metadata it will clear the metadata associated to the directory.

Code Samples

Set the metadata to "directory:updatedMetadata"

Response<ShareDirectorySetMetadataInfo> response =
     shareDirectoryClient.setMetadataWithResponse(Collections.singletonMap("directory", "updatedMetadata"),
         Duration.ofSeconds(1), new Context(key1, value1));
 System.out.printf("Setting the directory metadata completed with updated etag %d", response.getStatusCode());

Clear the metadata of the directory

Response<ShareDirectorySetMetadataInfo> response = shareDirectoryClient.setMetadataWithResponse(null,
     Duration.ofSeconds(1), new Context(key1, value1));
 System.out.printf("Directory latest modified date is %s.", response.getStatusCode());

For more information, see the Azure Docs.

Parameters:

metadata - Optional metadata to set on the directory, if null is passed the metadata for the directory is cleared
timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
context - Additional context that is passed through the Http pipeline during the service call.

Returns:

A response containing the information about the directory and response status code

setProperties

public ShareDirectoryInfo setProperties(FileSmbProperties smbProperties, String filePermission)

Sets the properties of this directory. The properties include the file SMB properties and the file permission.

Code Samples

Set directory properties

FileSmbProperties smbProperties = new FileSmbProperties();
 String filePermission = "filePermission";
 ShareDirectoryInfo response = shareDirectoryClient.setProperties(smbProperties, filePermission);
 System.out.printf("Directory latest modified date is %s.", response.getLastModified());

For more information, see the Azure Docs.

Parameters:

smbProperties - The SMB properties of the directory.
filePermission - The file permission of the directory.

Returns:

The storage directory SMB properties

setPropertiesWithResponse

public Response setPropertiesWithResponse(FileSmbProperties smbProperties, String filePermission, Duration timeout, Context context)

Sets the properties of this directory. The properties include the file SMB properties and the file permission.

Code Samples

Set directory properties

FileSmbProperties smbProperties = new FileSmbProperties();
 String filePermission = "filePermission";
 Response<ShareDirectoryInfo> response = shareDirectoryClient.setPropertiesWithResponse(smbProperties, filePermission,
     Duration.ofSeconds(1), new Context(key1, value1));
 System.out.printf("Directory latest modified date is %s.", response.getValue().getLastModified());

For more information, see the Azure Docs.

Parameters:

smbProperties - The SMB properties of the directory.
filePermission - The file permission of the directory.
timeout - An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown.
context - Additional context that is passed through the Http pipeline during the service call.

Returns:

A response containing the storage directory smb properties with headers and response status code

Applies to