/** * Get information about the given path. **/ public <F extends FileQueryableInformation> F getFileInformation(String path, Class<F> informationClass) throws SMBApiException { try (DiskEntry e = open(path, of(FILE_READ_ATTRIBUTES, FILE_READ_EA), null, ALL, FILE_OPEN, null)) { return e.getFileInformation(informationClass); } }
/** * Get information for a given path **/ public <F extends FileSettableInformation> void setFileInformation(String path, F information) throws SMBApiException { try (DiskEntry e = open(path, of(FILE_WRITE_ATTRIBUTES, FILE_WRITE_EA), null, ALL, FILE_OPEN, null)) { e.setFileInformation(information); } }
/** * The SecurityDescriptor(MS-DTYP 2.4.6 SECURITY_DESCRIPTOR) for the Given Path */ public SecurityDescriptor getSecurityInfo(String path, Set<SecurityInformation> securityInfo) throws SMBApiException { EnumSet<AccessMask> accessMask = of(READ_CONTROL); if (securityInfo.contains(SecurityInformation.SACL_SECURITY_INFORMATION)) { accessMask.add(ACCESS_SYSTEM_SECURITY); } try (DiskEntry e = open(path, accessMask, null, ALL, FILE_OPEN, null)) { return e.getSecurityInformation(securityInfo); } }
/** * Get information for a given path **/ public <F extends FileSettableInformation> void setFileInformation(String path, F information) throws SMBApiException { try (DiskEntry e = open(path, of(FILE_WRITE_ATTRIBUTES, FILE_WRITE_EA), null, ALL, FILE_OPEN, null)) { e.setFileInformation(information); } }
public File openFile(String path, Set<AccessMask> accessMask, Set<FileAttributes> attributes, Set<SMB2ShareAccess> shareAccesses, SMB2CreateDisposition createDisposition, Set<SMB2CreateOptions> createOptions) { EnumSet<SMB2CreateOptions> actualCreateOptions = createOptions != null ? EnumSet.copyOf(createOptions) : EnumSet.noneOf(SMB2CreateOptions.class); actualCreateOptions.add(FILE_NON_DIRECTORY_FILE); actualCreateOptions.remove(FILE_DIRECTORY_FILE); EnumSet<FileAttributes> actualAttributes = attributes != null ? EnumSet.copyOf(attributes) : EnumSet.noneOf(FileAttributes.class); actualAttributes.remove(FILE_ATTRIBUTE_DIRECTORY); return (File) open( path, accessMask, actualAttributes, shareAccesses, createDisposition, actualCreateOptions ); }
public File openFile(String path, Set<AccessMask> accessMask, Set<FileAttributes> attributes, Set<SMB2ShareAccess> shareAccesses, SMB2CreateDisposition createDisposition, Set<SMB2CreateOptions> createOptions) { EnumSet<SMB2CreateOptions> actualCreateOptions = createOptions != null ? EnumSet.copyOf(createOptions) : EnumSet.noneOf(SMB2CreateOptions.class); actualCreateOptions.add(FILE_NON_DIRECTORY_FILE); actualCreateOptions.remove(FILE_DIRECTORY_FILE); EnumSet<FileAttributes> actualAttributes = attributes != null ? EnumSet.copyOf(attributes) : EnumSet.noneOf(FileAttributes.class); actualAttributes.remove(FILE_ATTRIBUTE_DIRECTORY); return (File) open( path, accessMask, actualAttributes, shareAccesses, createDisposition, actualCreateOptions ); }
/** * Get information about the given path. **/ public <F extends FileQueryableInformation> F getFileInformation(String path, Class<F> informationClass) throws SMBApiException { try (DiskEntry e = open(path, of(FILE_READ_ATTRIBUTES, FILE_READ_EA), null, ALL, FILE_OPEN, null)) { return e.getFileInformation(informationClass); } }
/** * The SecurityDescriptor(MS-DTYP 2.4.6 SECURITY_DESCRIPTOR) for the Given Path */ public SecurityDescriptor getSecurityInfo(String path, Set<SecurityInformation> securityInfo) throws SMBApiException { EnumSet<AccessMask> accessMask = of(READ_CONTROL); if (securityInfo.contains(SecurityInformation.SACL_SECURITY_INFORMATION)) { accessMask.add(ACCESS_SYSTEM_SECURITY); } try (DiskEntry e = open(path, accessMask, null, ALL, FILE_OPEN, null)) { return e.getSecurityInformation(securityInfo); } }
/** * Get a handle to a directory in the given path */ public Directory openDirectory(String path, Set<AccessMask> accessMask, Set<FileAttributes> attributes, Set<SMB2ShareAccess> shareAccesses, SMB2CreateDisposition createDisposition, Set<SMB2CreateOptions> createOptions) { EnumSet<SMB2CreateOptions> actualCreateOptions = createOptions != null ? EnumSet.copyOf(createOptions) : EnumSet.noneOf(SMB2CreateOptions.class); actualCreateOptions.add(FILE_DIRECTORY_FILE); actualCreateOptions.remove(FILE_NON_DIRECTORY_FILE); EnumSet<FileAttributes> actualAttributes = attributes != null ? EnumSet.copyOf(attributes) : EnumSet.noneOf(FileAttributes.class); actualAttributes.add(FILE_ATTRIBUTE_DIRECTORY); return (Directory) open( path, accessMask, actualAttributes, shareAccesses, createDisposition, actualCreateOptions ); }
/** * The SecurityDescriptor(MS-DTYP 2.4.6 SECURITY_DESCRIPTOR) for the Given FileId */ public void setSecurityInfo(String path, Set<SecurityInformation> securityInfo, SecurityDescriptor securityDescriptor) throws SMBApiException { Set<AccessMask> accessMask = noneOf(AccessMask.class); if (securityInfo.contains(SecurityInformation.SACL_SECURITY_INFORMATION)) { accessMask.add(ACCESS_SYSTEM_SECURITY); } if (securityInfo.contains(SecurityInformation.OWNER_SECURITY_INFORMATION) || securityInfo.contains(SecurityInformation. GROUP_SECURITY_INFORMATION)) { accessMask.add(WRITE_OWNER); } if (securityInfo.contains(SecurityInformation.DACL_SECURITY_INFORMATION)) { accessMask.add(WRITE_DAC); } try (DiskEntry e = open(path, accessMask, null, ALL, FILE_OPEN, null)) { e.setSecurityInformation(securityDescriptor, securityInfo); } }
/** * Get a handle to a directory in the given path */ public Directory openDirectory(String path, Set<AccessMask> accessMask, Set<FileAttributes> attributes, Set<SMB2ShareAccess> shareAccesses, SMB2CreateDisposition createDisposition, Set<SMB2CreateOptions> createOptions) { EnumSet<SMB2CreateOptions> actualCreateOptions = createOptions != null ? EnumSet.copyOf(createOptions) : EnumSet.noneOf(SMB2CreateOptions.class); actualCreateOptions.add(FILE_DIRECTORY_FILE); actualCreateOptions.remove(FILE_NON_DIRECTORY_FILE); EnumSet<FileAttributes> actualAttributes = attributes != null ? EnumSet.copyOf(attributes) : EnumSet.noneOf(FileAttributes.class); actualAttributes.add(FILE_ATTRIBUTE_DIRECTORY); return (Directory) open( path, accessMask, actualAttributes, shareAccesses, createDisposition, actualCreateOptions ); }
/** * Remove the file at the given path */ public void rm(String path) throws SMBApiException { try (DiskEntry e = open( path, of(DELETE), of(FILE_ATTRIBUTE_NORMAL), of(FILE_SHARE_DELETE, FILE_SHARE_WRITE, FILE_SHARE_READ), FILE_OPEN, of(FILE_NON_DIRECTORY_FILE) )) { e.deleteOnClose(); } }
/** * The SecurityDescriptor(MS-DTYP 2.4.6 SECURITY_DESCRIPTOR) for the Given FileId */ public void setSecurityInfo(String path, Set<SecurityInformation> securityInfo, SecurityDescriptor securityDescriptor) throws SMBApiException { Set<AccessMask> accessMask = noneOf(AccessMask.class); if (securityInfo.contains(SecurityInformation.SACL_SECURITY_INFORMATION)) { accessMask.add(ACCESS_SYSTEM_SECURITY); } if (securityInfo.contains(SecurityInformation.OWNER_SECURITY_INFORMATION) || securityInfo.contains(SecurityInformation. GROUP_SECURITY_INFORMATION)) { accessMask.add(WRITE_OWNER); } if (securityInfo.contains(SecurityInformation.DACL_SECURITY_INFORMATION)) { accessMask.add(WRITE_DAC); } try (DiskEntry e = open(path, accessMask, null, ALL, FILE_OPEN, null)) { e.setSecurityInformation(securityDescriptor, securityInfo); } }
private boolean exists(String path, EnumSet<SMB2CreateOptions> createOptions, StatusHandler statusHandler) throws SMBApiException { try (DiskEntry ignored = open(path, of(FILE_READ_ATTRIBUTES), of(FILE_ATTRIBUTE_NORMAL), ALL, FILE_OPEN, createOptions)) { return true; } catch (SMBApiException sae) { if (statusHandler.isSuccess(sae.getStatusCode())) { return false; } else { throw sae; } } }
private boolean exists(String path, EnumSet<SMB2CreateOptions> createOptions, StatusHandler statusHandler) throws SMBApiException { try (DiskEntry ignored = open(path, of(FILE_READ_ATTRIBUTES), of(FILE_ATTRIBUTE_NORMAL), ALL, FILE_OPEN, createOptions)) { return true; } catch (SMBApiException sae) { if (statusHandler.isSuccess(sae.getStatusCode())) { return false; } else { throw sae; } } }
/** * Remove the file at the given path */ public void rm(String path) throws SMBApiException { try (DiskEntry e = open( path, of(DELETE), of(FILE_ATTRIBUTE_NORMAL), of(FILE_SHARE_DELETE, FILE_SHARE_WRITE, FILE_SHARE_READ), FILE_OPEN, of(FILE_NON_DIRECTORY_FILE) )) { e.deleteOnClose(); } catch (SMBApiException sae) { if (ALREADY_DELETED_STATUS_HANDLER.isSuccess(sae.getStatusCode())) { return; } throw sae; } }
try (DiskEntry e = open( path, of(DELETE),
try (DiskEntry e = open( path, of(DELETE),