Class ShareDirectoryClient
- java.lang.Object
-
- com.azure.storage.file.share.ShareDirectoryClient
-
public class ShareDirectoryClient extends Object
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
this
for additional ways to construct the client.
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ShareDirectoryInfo
create()
Creates a directory in the file share and returns a response ofShareDirectoryInfo
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.com.azure.core.http.rest.Response<ShareFileClient>
createFileWithResponse(String fileName, long maxSize, ShareFileHttpHeaders httpHeaders, FileSmbProperties smbProperties, String filePermission, Map<String,String> metadata, ShareRequestConditions requestConditions, Duration timeout, com.azure.core.util.Context context)
Creates a file in this directory with specific name and returns a response of ShareDirectoryInfo to interact with it.com.azure.core.http.rest.Response<ShareFileClient>
createFileWithResponse(String fileName, long maxSize, ShareFileHttpHeaders httpHeaders, FileSmbProperties smbProperties, String filePermission, Map<String,String> metadata, Duration timeout, com.azure.core.util.Context context)
Creates a file in this directory with specific name and returns a response of ShareDirectoryInfo to interact with it.ShareDirectoryClient
createSubdirectory(String subdirectoryName)
Creates a subdirectory under current directory with specific name and returns a response of ShareDirectoryClient to interact with it.com.azure.core.http.rest.Response<ShareDirectoryClient>
createSubdirectoryWithResponse(String subdirectoryName, FileSmbProperties smbProperties, String filePermission, Map<String,String> metadata, Duration timeout, com.azure.core.util.Context context)
Creates a subdirectory under current directory with specific name , metadata and returns a response of ShareDirectoryClient to interact with it.com.azure.core.http.rest.Response<ShareDirectoryInfo>
createWithResponse(FileSmbProperties smbProperties, String filePermission, Map<String,String> metadata, Duration timeout, com.azure.core.util.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.com.azure.core.http.rest.Response<Void>
deleteFileWithResponse(String fileName, ShareRequestConditions requestConditions, Duration timeout, com.azure.core.util.Context context)
Deletes the file with specific name in this directory.com.azure.core.http.rest.Response<Void>
deleteFileWithResponse(String fileName, Duration timeout, com.azure.core.util.Context context)
Deletes the file with specific name in this directory.void
deleteSubdirectory(String subdirectoryName)
Deletes the subdirectory with specific name in this directory.com.azure.core.http.rest.Response<Void>
deleteSubdirectoryWithResponse(String subdirectoryName, Duration timeout, com.azure.core.util.Context context)
Deletes the subdirectory with specific name in this directory.com.azure.core.http.rest.Response<Void>
deleteWithResponse(Duration timeout, com.azure.core.util.Context context)
Deletes the directory in the file share.Boolean
exists()
Determines if the directory this client represents exists in the cloud.com.azure.core.http.rest.Response<Boolean>
existsWithResponse(Duration timeout, com.azure.core.util.Context context)
Determines if the directory this client represents exists in the cloud.CloseHandlesInfo
forceCloseAllHandles(boolean recursive, Duration timeout, com.azure.core.util.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.com.azure.core.http.rest.Response<CloseHandlesInfo>
forceCloseHandleWithResponse(String handleId, Duration timeout, com.azure.core.util.Context context)
Closes a handle on the directory at the service.String
generateSas(ShareServiceSasSignatureValues shareServiceSasSignatureValues)
Generates a service SAS for the directory using the specifiedShareServiceSasSignatureValues
String
generateSas(ShareServiceSasSignatureValues shareServiceSasSignatureValues, com.azure.core.util.Context context)
Generates a service SAS for the directory using the specifiedShareServiceSasSignatureValues
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.com.azure.core.http.HttpPipeline
getHttpPipeline()
Gets theHttpPipeline
powering this client.ShareDirectoryProperties
getProperties()
Retrieves the properties of this directory.com.azure.core.http.rest.Response<ShareDirectoryProperties>
getPropertiesWithResponse(Duration timeout, com.azure.core.util.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 toShareDirectoryClient
.ShareDirectoryClient
getSubdirectoryClient(String subdirectoryName)
Constructs a ShareDirectoryClient that interacts with the specified directory.com.azure.core.http.rest.PagedIterable<ShareFileItem>
listFilesAndDirectories()
Lists all sub-directories and files in this directory without their prefix or maxResult in single page.com.azure.core.http.rest.PagedIterable<ShareFileItem>
listFilesAndDirectories(ShareListFilesAndDirectoriesOptions options, Duration timeout, com.azure.core.util.Context context)
Lists all sub-directories and files in this directory with their prefix or snapshots.com.azure.core.http.rest.PagedIterable<ShareFileItem>
listFilesAndDirectories(String prefix, Integer maxResultsPerPage, Duration timeout, com.azure.core.util.Context context)
Lists all sub-directories and files in this directory with their prefix or snapshots.com.azure.core.http.rest.PagedIterable<HandleItem>
listHandles(Integer maxResultsPerPage, boolean recursive, Duration timeout, com.azure.core.util.Context context)
List of open handles on a directory or a file.ShareDirectorySetMetadataInfo
setMetadata(Map<String,String> metadata)
Sets the user-defined metadata to associate to the directory.com.azure.core.http.rest.Response<ShareDirectorySetMetadataInfo>
setMetadataWithResponse(Map<String,String> metadata, Duration timeout, com.azure.core.util.Context context)
Sets the user-defined metadata to associate to the directory.ShareDirectoryInfo
setProperties(FileSmbProperties smbProperties, String filePermission)
Sets the properties of this directory.com.azure.core.http.rest.Response<ShareDirectoryInfo>
setPropertiesWithResponse(FileSmbProperties smbProperties, String filePermission, Duration timeout, com.azure.core.util.Context context)
Sets the properties of this directory.
-
-
-
Method Detail
-
getDirectoryUrl
public String getDirectoryUrl()
Get the url of the storage directory client.- Returns:
- the URL of the storage directory client.
-
getServiceVersion
public ShareServiceVersion getServiceVersion()
Gets the service version the client is using.- Returns:
- the service version the client is using.
-
getFileClient
public ShareFileClient getFileClient(String fileName)
Constructs a ShareFileClient that interacts with the specified file.If the file doesn't exist in this directory
ShareFileClient.create(long)
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
-
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
-
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 com.azure.core.http.rest.Response<Boolean> existsWithResponse(Duration timeout, com.azure.core.util.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 aRuntimeException
will be raised.context
- Additional context that is passed through the Http pipeline during the service call.- Returns:
- Flag indicating existence of the directory.
-
create
public ShareDirectoryInfo create()
Creates a directory in the file share and returns a response ofShareDirectoryInfo
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:
- The
directory info
. - Throws:
ShareStorageException
- If the directory has already existed, the parent directory does not exist or directory name is an invalid resource name.
-
createWithResponse
public com.azure.core.http.rest.Response<ShareDirectoryInfo> createWithResponse(FileSmbProperties smbProperties, String filePermission, Map<String,String> metadata, Duration timeout, com.azure.core.util.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 aRuntimeException
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.
- Throws:
ShareStorageException
- If the directory has already existed, the parent directory does not exist or directory name is an invalid resource name.RuntimeException
- if the operation doesn't complete before the timeout concludes.
-
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.
- Throws:
ShareStorageException
- If the share doesn't exist
-
deleteWithResponse
public com.azure.core.http.rest.Response<Void> deleteWithResponse(Duration timeout, com.azure.core.util.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 aRuntimeException
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
- Throws:
ShareStorageException
- If the share doesn't existRuntimeException
- if the operation doesn't complete before the timeout concludes.
-
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 com.azure.core.http.rest.Response<ShareDirectoryProperties> getPropertiesWithResponse(Duration timeout, com.azure.core.util.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 aRuntimeException
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
- Throws:
RuntimeException
- if the operation doesn't complete before the timeout concludes.
-
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 com.azure.core.http.rest.Response<ShareDirectoryInfo> setPropertiesWithResponse(FileSmbProperties smbProperties, String filePermission, Duration timeout, com.azure.core.util.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 aRuntimeException
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
-
setMetadata
public ShareDirectorySetMetadataInfo setMetadata(Map<String,String> 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
- Throws:
ShareStorageException
- If the directory doesn't exist or the metadata contains invalid keys
-
setMetadataWithResponse
public com.azure.core.http.rest.Response<ShareDirectorySetMetadataInfo> setMetadataWithResponse(Map<String,String> metadata, Duration timeout, com.azure.core.util.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 clearedtimeout
- An optional timeout applied to the operation. If a response is not returned before the timeout concludes aRuntimeException
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
- Throws:
ShareStorageException
- If the directory doesn't exist or the metadata contains invalid keysRuntimeException
- if the operation doesn't complete before the timeout concludes.
-
listFilesAndDirectories
public com.azure.core.http.rest.PagedIterable<ShareFileItem> 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:
File info
in the storage directory
-
listFilesAndDirectories
public com.azure.core.http.rest.PagedIterable<ShareFileItem> listFilesAndDirectories(String prefix, Integer maxResultsPerPage, Duration timeout, com.azure.core.util.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 asContinuablePagedIterable.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 aRuntimeException
will be thrown.context
- Additional context that is passed through the Http pipeline during the service call.- Returns:
File info
in this directory with prefix and max number of return results.- Throws:
RuntimeException
- if the operation doesn't complete before the timeout concludes.
-
listFilesAndDirectories
public com.azure.core.http.rest.PagedIterable<ShareFileItem> listFilesAndDirectories(ShareListFilesAndDirectoriesOptions options, Duration timeout, com.azure.core.util.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 aRuntimeException
will be thrown.context
- Additional context that is passed through the Http pipeline during the service call.- Returns:
File info
in this directory with prefix and max number of return results.- Throws:
RuntimeException
- if the operation doesn't complete before the timeout concludes.
-
listHandles
public com.azure.core.http.rest.PagedIterable<HandleItem> listHandles(Integer maxResultsPerPage, boolean recursive, Duration timeout, com.azure.core.util.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 pagerecursive
- 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 aRuntimeException
will be thrown.context
- Additional context that is passed through the Http pipeline during the service call.- Returns:
handles
in the directory that satisfy the requirements- Throws:
RuntimeException
- if the operation doesn't complete before the timeout concludes.
-
forceCloseHandle
public CloseHandlesInfo forceCloseHandle(String handleId)
Closes a handle on the directory at the service. This is intended to be used alongsidelistHandles(Integer, boolean, Duration, 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 com.azure.core.http.rest.Response<CloseHandlesInfo> forceCloseHandleWithResponse(String handleId, Duration timeout, com.azure.core.util.Context context)
Closes a handle on the directory at the service. This is intended to be used alongsidelistHandles(Integer, boolean, Duration, 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 aRuntimeException
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.
-
forceCloseAllHandles
public CloseHandlesInfo forceCloseAllHandles(boolean recursive, Duration timeout, com.azure.core.util.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 aRuntimeException
will be thrown.context
- Additional context that is passed through the Http pipeline during the service call.- Returns:
- Information about the closed handles
-
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.
- Throws:
ShareStorageException
- If the subdirectory has already existed, the parent directory does not exist or directory is an invalid resource name.
-
createSubdirectoryWithResponse
public com.azure.core.http.rest.Response<ShareDirectoryClient> createSubdirectoryWithResponse(String subdirectoryName, FileSmbProperties smbProperties, String filePermission, Map<String,String> metadata, Duration timeout, com.azure.core.util.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 subdirectorysmbProperties
- The SMB properties of the directory.filePermission
- The file permission of the directory.metadata
- Optional metadata to associate with the subdirectorytimeout
- An optional timeout applied to the operation. If a response is not returned before the timeout concludes aRuntimeException
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.
- Throws:
ShareStorageException
- If the directory has already existed, the parent directory does not exist or subdirectory is an invalid resource name.RuntimeException
- if the operation doesn't complete before the timeout concludes.
-
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- Throws:
ShareStorageException
- If the subdirectory doesn't exist, the parent directory does not exist or subdirectory name is an invalid resource name.
-
deleteSubdirectoryWithResponse
public com.azure.core.http.rest.Response<Void> deleteSubdirectoryWithResponse(String subdirectoryName, Duration timeout, com.azure.core.util.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 subdirectorycontext
- Additional context that is passed through the Http pipeline during the service call.timeout
- An optional timeout applied to the operation. If a response is not returned before the timeout concludes aRuntimeException
will be thrown.- Returns:
- A response that only contains headers and response status code
- Throws:
ShareStorageException
- If the subdirectory doesn't exist, the parent directory does not exist or subdirectory name is an invalid resource name.RuntimeException
- if the operation doesn't complete before the timeout concludes.
-
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 filemaxSize
- Size of the file- Returns:
- The ShareFileClient
- Throws:
ShareStorageException
- If the file has already existed, the parent directory does not exist or file name is an invalid resource name.
-
createFileWithResponse
public com.azure.core.http.rest.Response<ShareFileClient> createFileWithResponse(String fileName, long maxSize, ShareFileHttpHeaders httpHeaders, FileSmbProperties smbProperties, String filePermission, Map<String,String> metadata, Duration timeout, com.azure.core.util.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 filemaxSize
- Max size of the filehttpHeaders
- 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 aRuntimeException
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.
- Throws:
ShareStorageException
- If the directory has already existed, the parent directory does not exist or file name is an invalid resource name.RuntimeException
- if the operation doesn't complete before the timeout concludes.
-
createFileWithResponse
public com.azure.core.http.rest.Response<ShareFileClient> createFileWithResponse(String fileName, long maxSize, ShareFileHttpHeaders httpHeaders, FileSmbProperties smbProperties, String filePermission, Map<String,String> metadata, ShareRequestConditions requestConditions, Duration timeout, com.azure.core.util.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 filemaxSize
- Max size of the filehttpHeaders
- 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 aRuntimeException
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.
- Throws:
ShareStorageException
- If the directory has already existed, the parent directory does not exist or file name is an invalid resource name.RuntimeException
- if the operation doesn't complete before the timeout concludes.
-
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- Throws:
ShareStorageException
- If the directory doesn't exist or the file doesn't exist or file name is an invalid resource name.
-
deleteFileWithResponse
public com.azure.core.http.rest.Response<Void> deleteFileWithResponse(String fileName, Duration timeout, com.azure.core.util.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 filetimeout
- An optional timeout applied to the operation. If a response is not returned before the timeout concludes aRuntimeException
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
- Throws:
ShareStorageException
- If the directory doesn't exist or the file doesn't exist or file name is an invalid resource name.RuntimeException
- if the operation doesn't complete before the timeout concludes.
-
deleteFileWithResponse
public com.azure.core.http.rest.Response<Void> deleteFileWithResponse(String fileName, ShareRequestConditions requestConditions, Duration timeout, com.azure.core.util.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 filerequestConditions
-ShareRequestConditions
timeout
- An optional timeout applied to the operation. If a response is not returned before the timeout concludes aRuntimeException
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
- Throws:
ShareStorageException
- If the directory doesn't exist or the file doesn't exist or file name is an invalid resource name.RuntimeException
- if the operation doesn't complete before the timeout concludes.
-
getShareSnapshotId
public String getShareSnapshotId()
Get snapshot id which attached toShareDirectoryClient
. Returnnull
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.
-
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.
-
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.
-
getAccountName
public String getAccountName()
Get associated account name.- Returns:
- account name associated with this storage resource.
-
getHttpPipeline
public com.azure.core.http.HttpPipeline getHttpPipeline()
Gets theHttpPipeline
powering this client.- Returns:
- The pipeline.
-
generateSas
public String generateSas(ShareServiceSasSignatureValues shareServiceSasSignatureValues)
Generates a service SAS for the directory using the specifiedShareServiceSasSignatureValues
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, com.azure.core.util.Context context)
Generates a service SAS for the directory using the specifiedShareServiceSasSignatureValues
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.
-
-