Java源码示例:com.hierynomus.mssmb2.SMB2ShareAccess
示例1
@Override
public OutputStream createFile(String f) throws FileSystemException, IOException {
Set<AccessMask> accessMask = new HashSet<AccessMask>(EnumSet.of(AccessMask.FILE_ADD_FILE));
Set<SMB2CreateOptions> createOptions = new HashSet<SMB2CreateOptions>(
EnumSet.of(SMB2CreateOptions.FILE_NON_DIRECTORY_FILE, SMB2CreateOptions.FILE_WRITE_THROUGH));
final File file = diskShare.openFile(f, accessMask, null, SMB2ShareAccess.ALL,
SMB2CreateDisposition.FILE_OVERWRITE_IF, createOptions);
OutputStream out = file.getOutputStream();
FilterOutputStream fos = new FilterOutputStream(out) {
boolean isOpen = true;
@Override
public void close() throws IOException {
if(isOpen) {
super.close();
isOpen=false;
}
file.close();
}
};
return fos;
}
示例2
/**
* get smb file, just need reed permission
*
* @param share share
* @param filePath file path not share name
* @return smb file
*/
private File openFile(DiskShare share, String filePath) {
return share.openFile(filePath,
EnumSet.of(AccessMask.FILE_READ_DATA),
null,
SMB2ShareAccess.ALL,
FILE_OPEN,
null);
}
示例3
/**
* get smb directory, just need reed permission
*
* @param share share
* @param filePath directory path not share name
* @return smb directory
*/
private Directory openDirectory(DiskShare share, String filePath) {
return share.openDirectory(
filePath,
EnumSet.of(AccessMask.GENERIC_READ),
null,
SMB2ShareAccess.ALL,
SMB2CreateDisposition.FILE_OPEN,
null);
}
示例4
/**
* get smb disk entry, just need reed permission
*
* @param share share
* @param filePath file or directory path nor share name
* @return dis entry
*/
private DiskEntry openDiskEntry(DiskShare share, String filePath) {
return share.open(
filePath,
EnumSet.of(AccessMask.GENERIC_READ),
null,
SMB2ShareAccess.ALL,
FILE_OPEN,
null);
}
示例5
/**
* get smb file, just need reed permission
*
* @param share share
* @param filePath file path not share name
* @return smb file
*/
private File openFile(DiskShare share, String filePath) {
return share.openFile(filePath,
EnumSet.of(AccessMask.FILE_READ_DATA),
null,
SMB2ShareAccess.ALL,
FILE_OPEN,
null);
}
示例6
/**
* get smb directory, just need read permission
*
* @param share share
* @param filePath directory path not share name
* @return smb directory
*/
private Directory openDirectory(DiskShare share, String filePath) {
return share.openDirectory(
filePath,
EnumSet.of(AccessMask.GENERIC_READ),
null,
SMB2ShareAccess.ALL,
SMB2CreateDisposition.FILE_OPEN,
null);
}
示例7
/**
* get smb disk entry, just need reed permission
*
* @param share share
* @param filePath file or directory path nor share name
* @return dis entry
*/
private DiskEntry openDiskEntry(DiskShare share, String filePath) {
return share.open(
filePath,
EnumSet.of(AccessMask.GENERIC_READ),
null,
SMB2ShareAccess.ALL,
FILE_OPEN,
null);
}
示例8
private File getFile(String filename, AccessMask accessMask, SMB2CreateDisposition createDisposition) {
Set<SMB2ShareAccess> shareAccess = new HashSet<SMB2ShareAccess>();
shareAccess.addAll(SMB2ShareAccess.ALL);
Set<SMB2CreateOptions> createOptions = new HashSet<SMB2CreateOptions>();
createOptions.add(SMB2CreateOptions.FILE_WRITE_THROUGH);
Set<AccessMask> accessMaskSet = new HashSet<AccessMask>();
accessMaskSet.add(accessMask);
File file;
file = diskShare.openFile(filename, accessMaskSet, null, shareAccess, createDisposition, createOptions);
return file;
}
示例9
private Directory getFolder(String filename, AccessMask accessMask, SMB2CreateDisposition createDisposition) {
Set<SMB2ShareAccess> shareAccess = new HashSet<SMB2ShareAccess>();
shareAccess.addAll(SMB2ShareAccess.ALL);
Set<AccessMask> accessMaskSet = new HashSet<AccessMask>();
accessMaskSet.add(accessMask);
Directory file;
file = diskShare.openDirectory(filename, accessMaskSet, null, shareAccess, createDisposition, null);
return file;
}
示例10
static DiskEntry open(DiskShare share, String path, Set<AccessMask> accessMask, SMB2CreateDisposition createDisposition) throws IOException {
// use SMB2ShareAccess.ALL to prevent TimeoutException / buffer underflow on concurrent operations
return share.open(path, accessMask, null, SMB2ShareAccess.ALL, createDisposition, null);
}