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 class
DiskShare.SMB2CreateResponseContext
A return object for thecreateFileAndResolve(SmbPath, SMB2ImpersonationLevel, Set, Set, Set, SMB2CreateDisposition, Set)
call.
-
Field Summary
Fields Modifier and Type Field Description private static StatusHandler
ALREADY_DELETED_STATUS_HANDLER
private static StatusHandler
FILE_EXISTS_STATUS_HANDLER
private static StatusHandler
FOLDER_EXISTS_STATUS_HANDLER
private PathResolver
resolver
-
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.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)
void
deleteOnClose(SMB2FileId fileId)
private boolean
exists(java.lang.String path, java.util.EnumSet<SMB2CreateOptions> createOptions, StatusHandler statusHandler)
boolean
fileExists(java.lang.String path)
File in the given path exists or notboolean
folderExists(java.lang.String path)
Folder in the given path exists or not.protected StatusHandler
getCreateStatusHandler()
protected DiskEntry
getDiskEntry(DiskShare.SMB2CreateResponseContext responseContext)
FileAllInformation
getFileInformation(SMB2FileId fileId)
Get information for a given fileId<F extends FileQueryableInformation>
FgetFileInformation(SMB2FileId fileId, java.lang.Class<F> informationClass)
FileAllInformation
getFileInformation(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.SecurityDescriptor
getSecurityInfo(SMB2FileId fileId, java.util.Set<SecurityInformation> securityInfo)
The SecurityDescriptor(MS-DTYP 2.4.6 SECURITY_DESCRIPTOR) for the Given FileIdSecurityDescriptor
getSecurityInfo(java.lang.String path, java.util.Set<SecurityInformation> securityInfo)
The SecurityDescriptor(MS-DTYP 2.4.6 SECURITY_DESCRIPTOR) for the Given PathShareInfo
getShareInformation()
Get Share 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)
.void
mkdir(java.lang.String path)
Create a directory in the given path.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)
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 pathFile
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)
private DiskShare
rerouteIfNeeded(SmbPath path, SmbPath target)
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)
void
rm(java.lang.String path)
Remove the file at the given pathvoid
rmdir(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 pathvoid
setSecurityInfo(SMB2FileId fileId, java.util.Set<SecurityInformation> securityInfo, SecurityDescriptor securityDescriptor)
The SecurityDescriptor(MS-DTYP 2.4.6 SECURITY_DESCRIPTOR) for the Given FileIdvoid
setSecurityInfo(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.String
toString()
-
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:
getCreateStatusHandler
in 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 SMBApiException
File in the given path exists or not- Throws:
SMBApiException
-
folderExists
public boolean folderExists(java.lang.String path) throws SMBApiException
Folder 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 SMBApiException
Create 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
-
rmdir
public void rmdir(java.lang.String path, boolean recursive) throws SMBApiException
Remove the directory at the given path.- Throws:
SMBApiException
-
rm
public void rm(java.lang.String path) throws SMBApiException
Remove 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 SMBApiException
The 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:
toString
in classjava.lang.Object
-
-