/** * Equivalent to calling {@link #iterator(Class, String) iterator(informationClass, null)}. * * @see #iterator(Class, String) */ public <F extends FileDirectoryQueryableInformation> Iterator<F> iterator(Class<F> informationClass) { return iterator(informationClass, null); }
/** * Equivalent to calling {@link #list(Class, String) list(FileIdBothDirectoryInformation.class, null)}. * * @see #list(Class, String) */ public List<FileIdBothDirectoryInformation> list() throws SMBApiException { return list(FileIdBothDirectoryInformation.class); }
protected DiskEntry getDiskEntry(String path, SMB2CreateResponseContext responseContext) { SMB2CreateResponse response = responseContext.resp; if (response.getFileAttributes().contains(FILE_ATTRIBUTE_DIRECTORY)) { return new Directory(response.getFileId(), responseContext.share, responseContext.target.toUncPath()); } else { return new File(response.getFileId(), responseContext.share, responseContext.target.toUncPath()); } }
/** * Create a directory in the given path. */ public void mkdir(String path) throws SMBApiException { Directory fileHandle = openDirectory( path, of(FILE_LIST_DIRECTORY, FILE_ADD_SUBDIRECTORY), of(FILE_ATTRIBUTE_DIRECTORY), ALL, FILE_CREATE, of(FILE_DIRECTORY_FILE)); fileHandle.close(); }
/** * Get Share Information for the current Disk Share * * @return the ShareInfo */ public ShareInfo getShareInformation() throws SMBApiException { try (Directory directory = openDirectory("", of(FILE_READ_ATTRIBUTES), null, ALL, FILE_OPEN, null)) { byte[] outputBuffer = queryInfo( directory.getFileId(), SMB2QueryInfoRequest.SMB2QueryInfoType.SMB2_0_INFO_FILESYSTEM, null, null, FileSystemInformationClass.FileFsFullSizeInformation ).getOutputBuffer(); try { return ShareInfo.parseFsFullSizeInformation(new Buffer.PlainBuffer(outputBuffer, Endian.LE)); } catch (Buffer.BufferException e) { throw new SMBRuntimeException(e); } } }
protected DiskEntry getDiskEntry(String path, SMB2CreateResponseContext responseContext) { SMB2CreateResponse response = responseContext.resp; if (response.getFileAttributes().contains(FILE_ATTRIBUTE_DIRECTORY)) { return new Directory(response.getFileId(), responseContext.share, responseContext.target.toUncPath()); } else { return new File(response.getFileId(), responseContext.share, responseContext.target.toUncPath()); } }
/** * Create a directory in the given path. */ public void mkdir(String path) throws SMBApiException { Directory fileHandle = openDirectory( path, of(FILE_LIST_DIRECTORY, FILE_ADD_SUBDIRECTORY), of(FILE_ATTRIBUTE_DIRECTORY), ALL, FILE_CREATE, of(FILE_DIRECTORY_FILE)); fileHandle.close(); }
/** * Get Share Information for the current Disk Share * * @return the ShareInfo */ public ShareInfo getShareInformation() throws SMBApiException { try (Directory directory = openDirectory("", of(FILE_READ_ATTRIBUTES), null, ALL, FILE_OPEN, null)) { byte[] outputBuffer = queryInfo( directory.getFileId(), SMB2QueryInfoRequest.SMB2QueryInfoType.SMB2_0_INFO_FILESYSTEM, null, null, FileSystemInformationClass.FileFsFullSizeInformation ).getOutputBuffer(); try { return ShareInfo.parseFsFullSizeInformation(new Buffer.PlainBuffer(outputBuffer, Endian.LE)); } catch (Buffer.BufferException e) { throw new SMBRuntimeException(e); } } }
/** * Equivalent to calling {@link #list(Class, String) list(informationClass, null)}. * * @see #list(Class, String) */ public <F extends FileDirectoryQueryableInformation> List<F> list(Class<F> informationClass) throws SMBApiException { return list(informationClass, null); }
/** * Equivalent to calling {@link #iterator(Class, String) iterator(FileIdBothDirectoryInformation.class, null)}. * * @see #iterator(Class, String) */ @Override public Iterator<FileIdBothDirectoryInformation> iterator() { return iterator(FileIdBothDirectoryInformation.class); }
/** * Equivalent to calling {@link #list(Class, String) list(FileIdBothDirectoryInformation.class, null)}. * * @see #list(Class, String) */ public List<FileIdBothDirectoryInformation> list() throws SMBApiException { return list(FileIdBothDirectoryInformation.class); }
/** * Equivalent to calling {@link #iterator(Class, String) iterator(informationClass, null)}. * * @see #iterator(Class, String) */ public <F extends FileDirectoryQueryableInformation> Iterator<F> iterator(Class<F> informationClass) { return iterator(informationClass, null); }
/** * Equivalent to calling {@link #list(Class, String) list(informationClass, null)}. * * @see #list(Class, String) */ public <F extends FileDirectoryQueryableInformation> List<F> list(Class<F> informationClass) throws SMBApiException { return list(informationClass, null); }
/** * Equivalent to calling {@link #iterator(Class, String) iterator(FileIdBothDirectoryInformation.class, null)}. * * @see #iterator(Class, String) */ @Override public Iterator<FileIdBothDirectoryInformation> iterator() { return iterator(FileIdBothDirectoryInformation.class); }
/** * Opens the given path for read-only access and performs a directory listing. * * @see Directory#iterator(Class, String) */ public <I extends FileDirectoryQueryableInformation> List<I> list(String path, Class<I> informationClass, String searchPattern) { try (Directory d = openDirectory(path, of(FILE_LIST_DIRECTORY, FILE_READ_ATTRIBUTES, FILE_READ_EA), null, ALL, FILE_OPEN, null)) { return d.list(informationClass, searchPattern); } }
/** * Calls {@link #iterator(Class, String) iterator(FileIdBothDirectoryInformation.class, null)} and collects * the contents of the returned iterator in a list. * * @see #iterator(Class, String) */ public <F extends FileDirectoryQueryableInformation> List<F> list(Class<F> informationClass, String searchPattern) { List<F> fileList = new ArrayList<>(); Iterator<F> iterator = iterator(informationClass, searchPattern); while (iterator.hasNext()) { fileList.add(iterator.next()); } return fileList; }
/** * Opens the given path for read-only access and performs a directory listing. * * @see Directory#iterator(Class, String) */ public <I extends FileDirectoryQueryableInformation> List<I> list(String path, Class<I> informationClass, String searchPattern) { try (Directory d = openDirectory(path, of(FILE_LIST_DIRECTORY, FILE_READ_ATTRIBUTES, FILE_READ_EA), null, ALL, FILE_OPEN, null)) { return d.list(informationClass, searchPattern); } }
/** * Calls {@link #iterator(Class, String) iterator(FileIdBothDirectoryInformation.class, null)} and collects * the contents of the returned iterator in a list. * * @see #iterator(Class, String) */ public <F extends FileDirectoryQueryableInformation> List<F> list(Class<F> informationClass, String searchPattern) { List<F> fileList = new ArrayList<>(); Iterator<F> iterator = iterator(informationClass, searchPattern); while (iterator.hasNext()) { fileList.add(iterator.next()); } return fileList; }