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 anSftpClient
to 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 class
SftpClientDirectoryScanner.ScanDirEntry
The result of a scan
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.String
basedir
-
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.String
createRelativePath(java.lang.String parent, java.lang.String name)
java.lang.String
getBasedir()
java.lang.String
getSeparator()
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)
void
setBasedir(java.lang.String basedir)
void
setIncludes(java.util.Collection<java.lang.String> includes)
void
setSeparator(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:
getSeparator
in classPathScanningMatcher
- Returns:
- The file separator to use to parse paths - default=local O/S separator
-
setSeparator
public void setSeparator(java.lang.String separator)
- Overrides:
setSeparator
in classPathScanningMatcher
-
setIncludes
public void setIncludes(java.util.Collection<java.lang.String> includes)
- Overrides:
setIncludes
in classPathScanningMatcher
-
scan
public java.util.Collection<SftpClientDirectoryScanner.ScanDirEntry> scan(SftpClient client) throws java.io.IOException, java.lang.IllegalStateException
Scans the currentbasedir
- Parameters:
client
- TheSftpClient
instance to use- Returns:
- A
Collection
ofSftpClientDirectoryScanner.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.IOException
java.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
- TheSftpClient
instance 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
)Collection
ofSftpClientDirectoryScanner.ScanDirEntry
-ies to update- Returns:
- The updated
Collection
ofSftpClientDirectoryScanner.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)
-
-