Package com.hierynomus.smbj.share
Class DiskShare
- java.lang.Object
-
- com.hierynomus.smbj.share.Share
-
- com.hierynomus.smbj.share.DiskShare
-
- All Implemented Interfaces:
java.lang.AutoCloseable
public class DiskShare extends Share
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static classDiskShare.SMB2CreateResponseContextA return object for thecreateFileAndResolve(SmbPath, SMB2ImpersonationLevel, Set, Set, Set, SMB2CreateDisposition, Set)call.
-
Field Summary
Fields Modifier and Type Field Description private static StatusHandlerALREADY_DELETED_STATUS_HANDLERprivate static StatusHandlerFILE_EXISTS_STATUS_HANDLERprivate static StatusHandlerFOLDER_EXISTS_STATUS_HANDLERprivate PathResolverresolver-
Fields inherited from class com.hierynomus.smbj.share.Share
session, smbPath, treeConnect
-
-
Constructor Summary
Constructors Constructor Description DiskShare(SmbPath smbPath, TreeConnect treeConnect, PathResolver pathResolver)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private DiskShare.SMB2CreateResponseContextcreateFileAndResolve(SmbPath path, SMB2ImpersonationLevel impersonationLevel, java.util.Set<AccessMask> accessMask, java.util.Set<FileAttributes> fileAttributes, java.util.Set<SMB2ShareAccess> shareAccess, SMB2CreateDisposition createDisposition, java.util.Set<SMB2CreateOptions> createOptions)voiddeleteOnClose(SMB2FileId fileId)private booleanexists(java.lang.String path, java.util.EnumSet<SMB2CreateOptions> createOptions, StatusHandler statusHandler)booleanfileExists(java.lang.String path)File in the given path exists or notbooleanfolderExists(java.lang.String path)Folder in the given path exists or not.protected StatusHandlergetCreateStatusHandler()protected DiskEntrygetDiskEntry(DiskShare.SMB2CreateResponseContext responseContext)FileAllInformationgetFileInformation(SMB2FileId fileId)Get information for a given fileId<F extends FileQueryableInformation>
FgetFileInformation(SMB2FileId fileId, java.lang.Class<F> informationClass)FileAllInformationgetFileInformation(java.lang.String path)Get information about the given path.<F extends FileQueryableInformation>
FgetFileInformation(java.lang.String path, java.lang.Class<F> informationClass)Get information about the given path.SecurityDescriptorgetSecurityInfo(SMB2FileId fileId, java.util.Set<SecurityInformation> securityInfo)The SecurityDescriptor(MS-DTYP 2.4.6 SECURITY_DESCRIPTOR) for the Given FileIdSecurityDescriptorgetSecurityInfo(java.lang.String path, java.util.Set<SecurityInformation> securityInfo)The SecurityDescriptor(MS-DTYP 2.4.6 SECURITY_DESCRIPTOR) for the Given PathShareInfogetShareInformation()Get Share Information for the current Disk ShareVolumeInfogetVolumeInfo()Get Volume Information for the current Disk Sharejava.util.List<FileIdBothDirectoryInformation>list(java.lang.String path)Equivalent to callinglist(path, FileIdBothDirectoryInformation.class, null, null).<I extends FileDirectoryQueryableInformation>
java.util.List<I>list(java.lang.String path, java.lang.Class<I> informationClass)Equivalent to callinglist(path, informationClass, null, null).<I extends FileDirectoryQueryableInformation>
java.util.List<I>list(java.lang.String path, java.lang.Class<I> informationClass, java.lang.String searchPattern, java.util.EnumSet<AccessMask> accessMask)Opens the given path for read-only access and performs a directory listing.java.util.List<FileIdBothDirectoryInformation>list(java.lang.String path, java.lang.String searchPattern)Equivalent to callinglist(path, FileIdBothDirectoryInformation.class, searchPattern, null).voidmkdir(java.lang.String path)Create a directory in the given path.DiskEntryopen(java.lang.String path, java.util.Set<AccessMask> accessMask, java.util.Set<FileAttributes> attributes, java.util.Set<SMB2ShareAccess> shareAccesses, SMB2CreateDisposition createDisposition, java.util.Set<SMB2CreateOptions> createOptions)DirectoryopenDirectory(java.lang.String path, java.util.Set<AccessMask> accessMask, java.util.Set<FileAttributes> attributes, java.util.Set<SMB2ShareAccess> shareAccesses, SMB2CreateDisposition createDisposition, java.util.Set<SMB2CreateOptions> createOptions)Get a handle to a directory in the given pathFileopenFile(java.lang.String path, java.util.Set<AccessMask> accessMask, java.util.Set<FileAttributes> attributes, java.util.Set<SMB2ShareAccess> shareAccesses, SMB2CreateDisposition createDisposition, java.util.Set<SMB2CreateOptions> createOptions)private DiskSharererouteIfNeeded(SmbPath path, SmbPath target)private DiskShare.SMB2CreateResponseContextresolveAndCreateFile(SmbPath path, SMB2ImpersonationLevel impersonationLevel, java.util.Set<AccessMask> accessMask, java.util.Set<FileAttributes> fileAttributes, java.util.Set<SMB2ShareAccess> shareAccess, SMB2CreateDisposition createDisposition, java.util.Set<SMB2CreateOptions> createOptions)voidrm(java.lang.String path)Remove the file at the given pathvoidrmdir(java.lang.String path, boolean recursive)Remove the directory at the given path.<F extends FileSettableInformation>
voidsetFileInformation(SMB2FileId fileId, F information)<F extends FileSettableInformation>
voidsetFileInformation(java.lang.String path, F information)Get information for a given pathvoidsetSecurityInfo(SMB2FileId fileId, java.util.Set<SecurityInformation> securityInfo, SecurityDescriptor securityDescriptor)The SecurityDescriptor(MS-DTYP 2.4.6 SECURITY_DESCRIPTOR) for the Given FileIdvoidsetSecurityInfo(java.lang.String path, java.util.Set<SecurityInformation> securityInfo, SecurityDescriptor securityDescriptor)The SecurityDescriptor(MS-DTYP 2.4.6 SECURITY_DESCRIPTOR) for the Given FileIdjava.lang.StringtoString()-
Methods inherited from class com.hierynomus.smbj.share.Share
changeNotifyAsync, close, closeFileId, closeFileIdNoWait, createFile, equals, flush, getDialect, getReadBufferSize, getReadTimeout, getSmbPath, getTreeConnect, getWriteBufferSize, hashCode, ioctl, ioctl, ioctl, ioctl, ioctl, ioctl, ioctl, ioctlAsync, ioctlAsync, isConnected, openFileId, queryDirectory, queryInfo, read, readAsync, receive, receive, sendLockRequest, setInfo, write, writeAsync
-
-
-
-
Field Detail
-
resolver
private final PathResolver resolver
-
FILE_EXISTS_STATUS_HANDLER
private static final StatusHandler FILE_EXISTS_STATUS_HANDLER
-
FOLDER_EXISTS_STATUS_HANDLER
private static final StatusHandler FOLDER_EXISTS_STATUS_HANDLER
-
ALREADY_DELETED_STATUS_HANDLER
private static StatusHandler ALREADY_DELETED_STATUS_HANDLER
-
-
Constructor Detail
-
DiskShare
public DiskShare(SmbPath smbPath, TreeConnect treeConnect, PathResolver pathResolver)
-
-
Method Detail
-
open
public DiskEntry open(java.lang.String path, java.util.Set<AccessMask> accessMask, java.util.Set<FileAttributes> attributes, java.util.Set<SMB2ShareAccess> shareAccesses, SMB2CreateDisposition createDisposition, java.util.Set<SMB2CreateOptions> createOptions)
-
getCreateStatusHandler
protected StatusHandler getCreateStatusHandler()
- Overrides:
getCreateStatusHandlerin classShare
-
createFileAndResolve
private DiskShare.SMB2CreateResponseContext createFileAndResolve(SmbPath path, SMB2ImpersonationLevel impersonationLevel, java.util.Set<AccessMask> accessMask, java.util.Set<FileAttributes> fileAttributes, java.util.Set<SMB2ShareAccess> shareAccess, SMB2CreateDisposition createDisposition, java.util.Set<SMB2CreateOptions> createOptions)
-
resolveAndCreateFile
private DiskShare.SMB2CreateResponseContext resolveAndCreateFile(SmbPath path, SMB2ImpersonationLevel impersonationLevel, java.util.Set<AccessMask> accessMask, java.util.Set<FileAttributes> fileAttributes, java.util.Set<SMB2ShareAccess> shareAccess, SMB2CreateDisposition createDisposition, java.util.Set<SMB2CreateOptions> createOptions)
-
getDiskEntry
protected DiskEntry getDiskEntry(DiskShare.SMB2CreateResponseContext responseContext)
-
openDirectory
public Directory openDirectory(java.lang.String path, java.util.Set<AccessMask> accessMask, java.util.Set<FileAttributes> attributes, java.util.Set<SMB2ShareAccess> shareAccesses, SMB2CreateDisposition createDisposition, java.util.Set<SMB2CreateOptions> createOptions)
Get a handle to a directory in the given path
-
openFile
public File openFile(java.lang.String path, java.util.Set<AccessMask> accessMask, java.util.Set<FileAttributes> attributes, java.util.Set<SMB2ShareAccess> shareAccesses, SMB2CreateDisposition createDisposition, java.util.Set<SMB2CreateOptions> createOptions)
-
fileExists
public boolean fileExists(java.lang.String path) throws SMBApiExceptionFile in the given path exists or not- Throws:
SMBApiException
-
folderExists
public boolean folderExists(java.lang.String path) throws SMBApiExceptionFolder in the given path exists or not.- Throws:
SMBApiException
-
exists
private boolean exists(java.lang.String path, java.util.EnumSet<SMB2CreateOptions> createOptions, StatusHandler statusHandler) throws SMBApiException- Throws:
SMBApiException
-
list
public java.util.List<FileIdBothDirectoryInformation> list(java.lang.String path) throws SMBApiException
Equivalent to callinglist(path, FileIdBothDirectoryInformation.class, null, null).- Throws:
SMBApiException- See Also:
#list(String, Class, String, EnumSet)
-
list
public java.util.List<FileIdBothDirectoryInformation> list(java.lang.String path, java.lang.String searchPattern) throws SMBApiException
Equivalent to callinglist(path, FileIdBothDirectoryInformation.class, searchPattern, null).- Throws:
SMBApiException- See Also:
#list(String, Class, String, EnumSet)
-
list
public <I extends FileDirectoryQueryableInformation> java.util.List<I> list(java.lang.String path, java.lang.Class<I> informationClass)
Equivalent to callinglist(path, informationClass, null, null).- See Also:
#list(String, Class, String, EnumSet)
-
list
public <I extends FileDirectoryQueryableInformation> java.util.List<I> list(java.lang.String path, java.lang.Class<I> informationClass, java.lang.String searchPattern, java.util.EnumSet<AccessMask> accessMask)
Opens the given path for read-only access and performs a directory listing.- See Also:
Directory.iterator(Class, String)
-
mkdir
public void mkdir(java.lang.String path) throws SMBApiExceptionCreate a directory in the given path.- Throws:
SMBApiException
-
getFileInformation
public FileAllInformation getFileInformation(java.lang.String path) throws SMBApiException
Get information about the given path.- Throws:
SMBApiException
-
getFileInformation
public <F extends FileQueryableInformation> F getFileInformation(java.lang.String path, java.lang.Class<F> informationClass) throws SMBApiException
Get information about the given path.- Throws:
SMBApiException
-
getFileInformation
public FileAllInformation getFileInformation(SMB2FileId fileId) throws SMBApiException
Get information for a given fileId- Throws:
SMBApiException
-
getFileInformation
public <F extends FileQueryableInformation> F getFileInformation(SMB2FileId fileId, java.lang.Class<F> informationClass) throws SMBApiException
- Throws:
SMBApiException
-
setFileInformation
public <F extends FileSettableInformation> void setFileInformation(SMB2FileId fileId, F information)
-
setFileInformation
public <F extends FileSettableInformation> void setFileInformation(java.lang.String path, F information) throws SMBApiException
Get information for a given path- Throws:
SMBApiException
-
getShareInformation
public ShareInfo getShareInformation() throws SMBApiException
Get Share Information for the current Disk Share- Returns:
- the ShareInfo
- Throws:
SMBApiException
-
getVolumeInfo
public VolumeInfo getVolumeInfo() throws SMBApiException
Get Volume Information for the current Disk Share- Returns:
- the VolumeInfo
- Throws:
SMBApiException
-
rmdir
public void rmdir(java.lang.String path, boolean recursive) throws SMBApiExceptionRemove the directory at the given path.- Throws:
SMBApiException
-
rm
public void rm(java.lang.String path) throws SMBApiExceptionRemove the file at the given path- Throws:
SMBApiException
-
deleteOnClose
public void deleteOnClose(SMB2FileId fileId)
-
getSecurityInfo
public SecurityDescriptor getSecurityInfo(java.lang.String path, java.util.Set<SecurityInformation> securityInfo) throws SMBApiException
The SecurityDescriptor(MS-DTYP 2.4.6 SECURITY_DESCRIPTOR) for the Given Path- Throws:
SMBApiException
-
getSecurityInfo
public SecurityDescriptor getSecurityInfo(SMB2FileId fileId, java.util.Set<SecurityInformation> securityInfo) throws SMBApiException
The SecurityDescriptor(MS-DTYP 2.4.6 SECURITY_DESCRIPTOR) for the Given FileId- Throws:
SMBApiException
-
setSecurityInfo
public void setSecurityInfo(java.lang.String path, java.util.Set<SecurityInformation> securityInfo, SecurityDescriptor securityDescriptor) throws SMBApiExceptionThe SecurityDescriptor(MS-DTYP 2.4.6 SECURITY_DESCRIPTOR) for the Given FileId- Throws:
SMBApiException
-
setSecurityInfo
public void setSecurityInfo(SMB2FileId fileId, java.util.Set<SecurityInformation> securityInfo, SecurityDescriptor securityDescriptor) throws SMBApiException
The SecurityDescriptor(MS-DTYP 2.4.6 SECURITY_DESCRIPTOR) for the Given FileId- Throws:
SMBApiException
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-