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);
}