Package org.apache.sshd.sftp.client.fs
Class SftpClientDirectoryScanner
- java.lang.Object
-
- org.apache.sshd.common.util.io.PathScanningMatcher
-
- org.apache.sshd.sftp.client.fs.SftpClientDirectoryScanner
-
public class SftpClientDirectoryScanner extends PathScanningMatcher
Uses anSftpClientto scan a directory (possibly recursively) and find files that match a given set of inclusion patterns.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classSftpClientDirectoryScanner.ScanDirEntryThe result of a scan
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.Stringbasedir-
Fields inherited from class org.apache.sshd.common.util.io.PathScanningMatcher
caseSensitive, includePatterns, separator
-
-
Constructor Summary
Constructors Constructor Description SftpClientDirectoryScanner()SftpClientDirectoryScanner(boolean caseSensitive)SftpClientDirectoryScanner(java.lang.String dir)SftpClientDirectoryScanner(java.lang.String dir, java.lang.String... includes)SftpClientDirectoryScanner(java.lang.String dir, java.util.Collection<java.lang.String> includes)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.lang.StringcreateRelativePath(java.lang.String parent, java.lang.String name)java.lang.StringgetBasedir()java.lang.StringgetSeparator()java.util.Collection<SftpClientDirectoryScanner.ScanDirEntry>scan(SftpClient client)Scans the currentbasedir<C extends java.util.Collection<SftpClientDirectoryScanner.ScanDirEntry>>
Cscan(SftpClient client, java.util.function.Supplier<? extends C> factory)protected <C extends java.util.Collection<SftpClientDirectoryScanner.ScanDirEntry>>
Cscandir(SftpClient client, java.lang.String rootDir, java.lang.String parent, C filesList)voidsetBasedir(java.lang.String basedir)voidsetIncludes(java.util.Collection<java.lang.String> includes)voidsetSeparator(java.lang.String separator)-
Methods inherited from class org.apache.sshd.common.util.io.PathScanningMatcher
couldHoldIncluded, getIncludes, isCaseSensitive, isIncluded, normalizePattern, setCaseSensitive, setIncludes
-
-
-
-
Constructor Detail
-
SftpClientDirectoryScanner
public SftpClientDirectoryScanner()
-
SftpClientDirectoryScanner
public SftpClientDirectoryScanner(boolean caseSensitive)
-
SftpClientDirectoryScanner
public SftpClientDirectoryScanner(java.lang.String dir)
-
SftpClientDirectoryScanner
public SftpClientDirectoryScanner(java.lang.String dir, java.lang.String... includes)
-
SftpClientDirectoryScanner
public SftpClientDirectoryScanner(java.lang.String dir, java.util.Collection<java.lang.String> includes)
-
-
Method Detail
-
getBasedir
public java.lang.String getBasedir()
-
setBasedir
public void setBasedir(java.lang.String basedir)
- Parameters:
basedir- The base directory from which to start scanning. Note: it is converted to its canonical form when scanning. May not benull/empty
-
getSeparator
public java.lang.String getSeparator()
- Overrides:
getSeparatorin classPathScanningMatcher- Returns:
- The file separator to use to parse paths - default=local O/S separator
-
setSeparator
public void setSeparator(java.lang.String separator)
- Overrides:
setSeparatorin classPathScanningMatcher
-
setIncludes
public void setIncludes(java.util.Collection<java.lang.String> includes)
- Overrides:
setIncludesin classPathScanningMatcher
-
scan
public java.util.Collection<SftpClientDirectoryScanner.ScanDirEntry> scan(SftpClient client) throws java.io.IOException, java.lang.IllegalStateException
Scans the currentbasedir- Parameters:
client- TheSftpClientinstance to use- Returns:
- A
CollectionofSftpClientDirectoryScanner.ScanDirEntry-ies matching theinclusion patterns - Throws:
java.io.IOException- If failed to access the remote file systemjava.lang.IllegalStateException- If illegal/missing base directory, or missing inclusion patterns, or specified base path is not a directory
-
scan
public <C extends java.util.Collection<SftpClientDirectoryScanner.ScanDirEntry>> C scan(SftpClient client, java.util.function.Supplier<? extends C> factory) throws java.io.IOException, java.lang.IllegalStateException
- Throws:
java.io.IOExceptionjava.lang.IllegalStateException
-
scandir
protected <C extends java.util.Collection<SftpClientDirectoryScanner.ScanDirEntry>> C scandir(SftpClient client, java.lang.String rootDir, java.lang.String parent, C filesList) throws java.io.IOException
- Type Parameters:
C- Generic collection type- Parameters:
client- TheSftpClientinstance to userootDir- The absolute path of the folder to readparent- The relative parent of the folder to read - may be empty for base directoryfilesList- The (nevernull)CollectionofSftpClientDirectoryScanner.ScanDirEntry-ies to update- Returns:
- The updated
CollectionofSftpClientDirectoryScanner.ScanDirEntry-ies - Throws:
java.io.IOException- If failed to access remote file system
-
createRelativePath
protected java.lang.String createRelativePath(java.lang.String parent, java.lang.String name)
-
-