本文整理匯總了Java中com.jcraft.jsch.ChannelSftp.ls方法的典型用法代碼示例。如果您正苦於以下問題:Java ChannelSftp.ls方法的具體用法?Java ChannelSftp.ls怎麽用?Java ChannelSftp.ls使用的例子?那麽恭喜您, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類com.jcraft.jsch.ChannelSftp的用法示例。
在下文中一共展示了ChannelSftp.ls方法的19個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於我們的係統推薦出更棒的Java代碼示例。
示例1: getRemoteFileList
點讚 5
import com.jcraft.jsch.ChannelSftp; //導入方法依賴的package包/類
@SuppressWarnings("unchecked")
public static Vector getRemoteFileList(String user, String password, String addr, int port, String cwd) throws JSchException,
SftpException, Exception {
Session session = getSession(user, password, addr, port);
Vector lsVec=null;
Channel channel = session.openChannel("sftp");
channel.connect();
ChannelSftp sftpChannel = (ChannelSftp) channel;
try {
lsVec=(Vector)sftpChannel.ls(cwd); //sftpChannel.lpwd()
} catch (Exception e) {
e.printStackTrace();
throw e;
} finally {
sftpChannel.exit();
channel.disconnect();
session.disconnect();
}
return lsVec;
}
開發者ID:billchen198318,項目名稱:bamboobsc,代碼行數:22,
示例2: getDir
點讚 5
import com.jcraft.jsch.ChannelSftp; //導入方法依賴的package包/類
private void getDir(final ChannelSftp channel,
final String remoteFile,
final File localFile) throws IOException, SftpException {
String pwd = remoteFile;
if (remoteFile.lastIndexOf('/') != -1) {
if (remoteFile.length() > 1) {
pwd = remoteFile.substring(0, remoteFile.lastIndexOf('/'));
}
}
channel.cd(pwd);
if (!localFile.exists()) {
localFile.mkdirs();
}
@SuppressWarnings("unchecked")
final List files = channel.ls(remoteFile);
for (ChannelSftp.LsEntry le : files) {
final String name = le.getFilename();
if (le.getAttrs().isDir()) {
if (".".equals(name) || "..".equals(name)) {
continue;
}
getDir(channel,
channel.pwd() + "/" + name + "/",
new File(localFile, le.getFilename()));
} else {
getFile(channel, le, localFile);
}
}
channel.cd("..");
}
開發者ID:apache,項目名稱:ant,代碼行數:31,
示例3: listFiles
點讚 5
import com.jcraft.jsch.ChannelSftp; //導入方法依賴的package包/類
/**
* Lists directory files on remote server.
* @throws URISyntaxException
* @throws JSchException
* @throws SftpException
*/
private void listFiles() throws URISyntaxException, JSchException, SftpException {
JSch jsch = new JSch();
JSch.setLogger(new JschLogger());
setupSftpIdentity(jsch);
URI uri = new URI(sftpUrl);
Session session = jsch.getSession(sshLogin, uri.getHost(), 22);
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
System.out.println("Connected to SFTP server");
Channel channel = session.openChannel("sftp");
channel.connect();
ChannelSftp sftpChannel = (ChannelSftp) channel;
Vector directoryEntries = sftpChannel.ls(uri.getPath());
for (LsEntry file : directoryEntries) {
System.out.println(String.format("File - %s", file.getFilename()));
}
sftpChannel.exit();
session.disconnect();
}
開發者ID:szaqal,項目名稱:KitchenSink,代碼行數:29,
示例4: listEntries
點讚 4
import com.jcraft.jsch.ChannelSftp; //導入方法依賴的package包/類
private Vector listEntries(final ChannelSftp channelSftp, final String path) throws SftpException {
final Vector vector = new Vector();
LsEntrySelector selector = new LsEntrySelector() {
public int select(LsEntry entry) {
final String filename = entry.getFilename();
if (filename.equals(".") || filename.equals("..")) {
return CONTINUE;
}
if (entry.getAttrs().isLink()) {
vector.addElement(entry);
}
else if (entry.getAttrs().isDir()) {
if (keepDirectory(filename)) {
vector.addElement(entry);
}
}
else {
if (keepFile(filename)) {
vector.addElement(entry);
}
}
return CONTINUE;
}
};
channelSftp.ls(path, selector);
return vector;
}
開發者ID:archos-sa,項目名稱:aos-FileCoreLibrary,代碼行數:30,
示例5: ls
點讚 4
import com.jcraft.jsch.ChannelSftp; //導入方法依賴的package包/類
@Override
@SuppressWarnings("unchecked")
public List ls(String path)
throws FileBasedHelperException {
try {
List list = new ArrayList();
ChannelSftp channel = getSftpChannel();
Vector vector = channel.ls(path);
for (LsEntry entry : vector) {
list.add(entry.getFilename());
}
channel.disconnect();
return list;
} catch (SftpException e) {
throw new FileBasedHelperException("Cannot execute ls command on sftp connection", e);
}
}
開發者ID:Hanmourang,項目名稱:Gobblin,代碼行數:18,
示例6: ls
點讚 3
import com.jcraft.jsch.ChannelSftp; //導入方法依賴的package包/類
public static List ls(String hostname, int port, String username, File keyFile, final String passphrase,
String path) throws JSchException, IOException, SftpException {
Session session = createSession(hostname, port, username, keyFile, passphrase);
session.connect();
ChannelSftp channel = (ChannelSftp) session.openChannel("sftp");
channel.connect();
@SuppressWarnings("unchecked")
Vector vector = (Vector) channel.ls(path);
channel.disconnect();
session.disconnect();
List files = new ArrayList();
for (LsEntry lse : vector) {
files.add(lse.getFilename());
}
return files;
}
開發者ID:ujmp,項目名稱:universal-java-matrix-package,代碼行數:17,
示例7: upload
點讚 3
import com.jcraft.jsch.ChannelSftp; //導入方法依賴的package包/類
public static void upload(String directory, String uploadFile, ChannelSftp sftp) throws Exception{
File file = new File(uploadFile);
if(file.exists()){
try {
Vector content = sftp.ls(directory);
if(content == null){
sftp.mkdir(directory);
System.out.println("mkdir:" + directory);
}
} catch (SftpException e) {
sftp.mkdir(directory);
}
sftp.cd(directory);
System.out.println("directory: " + directory);
if(file.isFile()){
InputStream ins = new FileInputStream(file);
sftp.put(ins, new String(file.getName().getBytes(),"UTF-8"));
}else{
File[] files = file.listFiles();
for (File file2 : files) {
String dir = file2.getAbsolutePath();
if(file2.isDirectory()){
String str = dir.substring(dir.lastIndexOf(file2.separator));
directory = directory + str;
}
System.out.println("directory is :" + directory);
upload(directory,dir,sftp);
}
}
}
}
開發者ID:zhuyuqing,項目名稱:bestconf,代碼行數:36,
示例8: traverse
點讚 3
import com.jcraft.jsch.ChannelSftp; //導入方法依賴的package包/類
/**
* Delete directory and its content recursively.
*
* @param channel
* open channel to SFTP server
* @param path
* path of the directory
* @throws SftpException
* when something went wrong
*/
@SuppressWarnings("unchecked")
private void traverse(ChannelSftp channel, String path)
throws SftpException {
SftpATTRS attrs = channel.stat(path);
if (attrs.isDir()) {
Vector files = channel.ls(path);
if (files != null && files.size() > 0) {
Iterator it = files.iterator();
while (it.hasNext()) {
LsEntry entry = it.next();
if ((!entry.getFilename().equals(".")) && (!entry.getFilename().equals(".."))) {
traverse(channel, path + "/" + entry.getFilename());
}
}
}
channel.rmdir(path);
} else {
channel.rm(path);
}
}
開發者ID:psnc-dl,項目名稱:darceo,代碼行數:31,
示例9: recursiveDelete
點讚 3
import com.jcraft.jsch.ChannelSftp; //導入方法依賴的package包/類
private static void recursiveDelete(ChannelSftp sftp, String path)
throws SftpException, JSchException {
Vector> entries = sftp.ls(path);
for (Object object : entries) {
LsEntry entry = (LsEntry) object;
if (entry.getFilename().equals(".")
|| entry.getFilename().equals("..")) {
continue;
}
if (entry.getAttrs().isDir()) {
recursiveDelete(sftp, path + entry.getFilename() + "/");
} else {
sftp.rm(path + entry.getFilename());
}
}
sftp.rmdir(path);
}
開發者ID:apache,項目名稱:incubator-taverna-common-activities,代碼行數:18,
示例10: list
點讚 3
import com.jcraft.jsch.ChannelSftp; //導入方法依賴的package包/類
@SuppressWarnings("unchecked")
public List list(String parent) throws IOException {
try {
ChannelSftp c = getSftpChannel(parent);
String path = getPath(parent);
Collection r = c.ls(path);
if (r != null) {
if (!path.endsWith("/")) {
path = parent + "/";
}
List result = new ArrayList<>();
for (LsEntry entry : r) {
if (".".equals(entry.getFilename()) || "..".equals(entry.getFilename())) {
continue;
}
result.add(path + entry.getFilename());
}
return result;
}
} catch (SftpException | URISyntaxException e) {
throw new IOException("Failed to return a listing for '" + parent + "'", e);
}
return null;
}
開發者ID:apache,項目名稱:ant-ivy,代碼行數:25,
示例11: listFile
點讚 3
import com.jcraft.jsch.ChannelSftp; //導入方法依賴的package包/類
@Override
public FileInfo listFile(String relativePath, boolean closeSession) {
ChannelSftp sftp = null;
FileInfo fileInfo = null;
try {
// Get a reusable channel if the session is not auto closed.
sftp = (closeSession) ? openConnectedChannel() : openConnectedChannel(CHANNEL_1);
sftp.cd(basePath);
if (!relativePath.equals(".") && !relativePath.equals("..")) {
@SuppressWarnings("rawtypes")
Vector list = sftp.ls(relativePath);
for (Object object : list) {
LsEntry entry = (LsEntry)object;
if (!entry.getFilename().equals(".") && !entry.getFilename().equals("..")) {
long updateTime = entry.getAttrs().getMTime();
fileInfo = new FileInfo(relativePath, entry.getAttrs().isDir(), updateTime * 1000, entry.getAttrs().getSize());
}
}
}
return fileInfo;
} catch (Exception e) {
return null;
} finally {
if (closeSession) {
close();
}
}
}
開發者ID:JumpMind,項目名稱:metl,代碼行數:29,
示例12: listFiles
點讚 2
import com.jcraft.jsch.ChannelSftp; //導入方法依賴的package包/類
private List listFiles(String path, ChannelSftp c) throws Exception {
try {
List res = new ArrayList();
@SuppressWarnings("rawtypes")
java.util.Vector vv = c.ls(extractSessionPath(path));
if (vv != null) {
for (int ii = 0; ii < vv.size(); ii++) {
Object obj = vv.elementAt(ii);
if (obj instanceof com.jcraft.jsch.ChannelSftp.LsEntry) {
LsEntry lsEntry = (com.jcraft.jsch.ChannelSftp.LsEntry) obj;
if ((lsEntry.getFilename().equals("."))
||(lsEntry.getFilename().equals(".."))
)
continue;
FileEntry fileEntry = new FileEntry();
fileEntry.displayName = lsEntry.getFilename();
fileEntry.path = createFilePath(path, fileEntry.displayName);
SftpATTRS attrs = lsEntry.getAttrs();
setFromAttrs(fileEntry, attrs);
res.add(fileEntry);
}
}
}
return res;
} catch (Exception e) {
tryDisconnect(c);
throw convertException(e);
}
}
開發者ID:PhilippC,項目名稱:keepass2android,代碼行數:34,
示例13: prepareUpload
點讚 2
import com.jcraft.jsch.ChannelSftp; //導入方法依賴的package包/類
public boolean prepareUpload(
ChannelSftp sftpChannel,
String path,
boolean overwrite)
throws SftpException, IOException, FileNotFoundException {
boolean result = false;
// Build romote path subfolders inclusive:
String[] folders = path.split("/");
for (String folder : folders) {
if (folder.length() > 0) {
// This is a valid folder:
try {
System.out.println("Current Folder path before cd:" + folder);
sftpChannel.cd(folder);
} catch (SftpException e) {
// No such folder yet:
System.out.println("Inside create folders: ");
sftpChannel.mkdir(folder);
sftpChannel.cd(folder);
}
}
}
// Folders ready. Remove such a file if exists:
if (sftpChannel.ls(path).size() > 0) {
if (!overwrite) {
System.out.println(
"Error - file " + path + " was not created on server. " +
"It already exists and overwriting is forbidden.");
} else {
// Delete file:
sftpChannel.ls(path); // Search file.
sftpChannel.rm(path); // Remove file.
result = true;
}
} else {
// No such file:
result = true;
}
return result;
}
開發者ID:jenkinsci,項目名稱:ssh2easy-plugin,代碼行數:45,
示例14: processCommands
點讚 2
import com.jcraft.jsch.ChannelSftp; //導入方法依賴的package包/類
private Object processCommands(ChannelSftp channel) throws Exception {
Object result = null;
if ("get".equals(action)) {
if (log.isDebugEnabled()) {
log.debug("Sftp get from '" + from + "' to '" + to + "'");
}
ensureFrom();
if (StringUtils.isBlank(to)) {
// return content as result
ByteArrayOutputStream out = new ByteArrayOutputStream();
channel.get(from, out);
result = out.toString("UTF-8");
} else {
channel.get(from, to);
}
doPostOperations(channel, from);
} else if ("put".equals(action)) {
if (log.isDebugEnabled()) {
log.debug("Sftp put from '" + from + "' to '" + to + "'");
}
ensureTo();
if (StringUtils.isBlank(from)) {
// put value as content
Object val = getValue();
if (val == null) {
throw new PaxmlRuntimeException("Sftp command wrong: no value to put on remote server");
}
InputStream in = new ByteArrayInputStream(String.valueOf(val).getBytes("UTF-8"));
channel.put(in, to);
} else {
channel.put(from, to);
}
doPostOperations(channel, to);
} else if ("move".equals(action)) {
if (log.isDebugEnabled()) {
log.debug("Sftp move from '" + from + "' to '" + to + "'");
}
ensureFrom();
ensureTo();
channel.rename(from, to);
} else if ("delete".equals(action)) {
if (log.isDebugEnabled()) {
log.debug("Sftp delete from: " + from);
}
ensureFrom();
channel.rm(from);
} else if ("mkdir".equals(action)) {
if (log.isDebugEnabled()) {
log.debug("Sftp mkdir to: " + to);
}
ensureTo();
channel.mkdir(to);
} else if ("list".equals(action)) {
if (log.isDebugEnabled()) {
log.debug("Sftp list from: " + from);
}
ensureFrom();
result = channel.ls(from);
} else {
throw new PaxmlRuntimeException("Unknown sftp action: " + action);
}
return result;
}
開發者ID:niuxuetao,項目名稱:paxml,代碼行數:65,
示例15: getSFTPMatchingPathes
點讚 2
import com.jcraft.jsch.ChannelSftp; //導入方法依賴的package包/類
private static List getSFTPMatchingPathes(String path, String[] pathStream, ArrayList arrayList, ChannelSftp fc, DateTime lastReadout, DateTimeFormatterBuilder dtfbuilder) {
int nextTokenPos = getPathTokens(path).length;
if (nextTokenPos == pathStream.length - 1) {
arrayList.add(path);
return arrayList;
}
String nextToken = pathStream[nextTokenPos];
String nextFolder = null;
try {
if (containsDateToken(nextToken)) {
Vector listDirectories = fc.ls(path);
for (Object folder : listDirectories) {
LsEntry currentFolder = (LsEntry) folder;
if (!matchDateString(currentFolder.getFilename(), nextToken)) {
continue;
}
DateTime folderTime = getFolderTime(path + currentFolder.getFilename() + "/", pathStream);
if (folderTime.isAfter(lastReadout)) {
nextFolder = currentFolder.getFilename();
getSFTPMatchingPathes(path + nextFolder + "/", pathStream, arrayList, fc, lastReadout, dtfbuilder);
}
// }
}
} else {
nextFolder = nextToken;
getSFTPMatchingPathes(path + nextFolder + "/", pathStream, arrayList, fc, lastReadout, dtfbuilder);
}
} catch (SftpException ex) {
org.apache.log4j.Logger.getLogger(DataSourceHelper.class).log(org.apache.log4j.Level.ERROR, "Cant find suitable files on the device");
}
return arrayList;
}
開發者ID:OpenJEVis,項目名稱:JECommons,代碼行數:36,
示例16: ls
點讚 2
import com.jcraft.jsch.ChannelSftp; //導入方法依賴的package包/類
@Override
public List ls(String path) throws FileBasedHelperException {
try {
List list = new ArrayList<>();
ChannelSftp channel = getSftpChannel();
Vector vector = channel.ls(path);
for (LsEntry entry : vector) {
list.add(entry.getFilename());
}
channel.disconnect();
return list;
} catch (SftpException e) {
throw new FileBasedHelperException("Cannot execute ls command on sftp connection", e);
}
}
開發者ID:apache,項目名稱:incubator-gobblin,代碼行數:16,
示例17: call
點讚 2
import com.jcraft.jsch.ChannelSftp; //導入方法依賴的package包/類
@Override
@SuppressWarnings("unchecked")
public StatInfo[] call() throws IOException, CancellationException, JSchException, ExecutionException, InterruptedException, SftpException {
if (!path.startsWith("/")) { //NOI18N
throw new FileNotFoundException("Path is not absolute: " + path); //NOI18N
}
List result = null;
SftpException exception = null;
if (LOG.isLoggable(Level.FINE)) {
LOG.log(Level.FINE, "{0} started", getTraceName());
}
String threadName = Thread.currentThread().getName();
Thread.currentThread().setName(PREFIX + ": " + getTraceName()); // NOI18N
int attempt = 1;
try {
for (; attempt <= LS_RETRY_COUNT; attempt++) {
ChannelSftp cftp = getChannel();
RemoteStatistics.ActivityID lsLoadID = RemoteStatistics.startChannelActivity("lsload", path); // NOI18N
try {
List entries = (List) cftp.ls(path);
result = new ArrayList<>(Math.max(1, entries.size() - 2));
for (LsEntry entry : entries) {
String name = entry.getFilename();
if (!".".equals(name) && !"..".equals(name)) { //NOI18N
SftpATTRS attrs = entry.getAttrs();
//if (!(attrs.isDir() || attrs.isLink())) {
// if ( (attrs.getPermissions() & S_IFMT) != S_IFREG) {
// // skip not regular files
// continue;
// }
//}
result.add(createStatInfo(path, name, attrs, cftp));
}
}
exception = null;
break;
} catch (SftpException e) {
exception = e;
if (e.id == SftpIOException.SSH_FX_FAILURE) {
if (LOG.isLoggable(Level.FINE)) {
LOG.log(Level.FINE, "{0} - exception while attempt {1}", new Object[]{getTraceName(), attempt});
}
if (MiscUtils.mightBrokeSftpChannel(e)) {
cftp.quit();
}
} else {
// re-try in case of failure only
// otherwise consider this exception as unrecoverable
break;
}
} finally {
RemoteStatistics.stopChannelActivity(lsLoadID);
releaseChannel(cftp);
}
}
} finally {
Thread.currentThread().setName(threadName);
}
if (exception != null) {
if (LOG.isLoggable(Level.FINE)) {
LOG.log(Level.FINE, "{0} failed", getTraceName());
}
throw decorateSftpException(exception, path);
}
if (LOG.isLoggable(Level.FINE)) {
LOG.log(Level.FINE, "{0} finished in {1} attempt(s)", new Object[]{getTraceName(), attempt});
}
return result == null ? new StatInfo[0] : result.toArray(new StatInfo[result.size()]);
}
開發者ID:apache,項目名稱:incubator-netbeans,代碼行數:73,
示例18: scanRecursive
點讚 2
import com.jcraft.jsch.ChannelSftp; //導入方法依賴的package包/類
void scanRecursive(ChannelSftp channel, String path) throws SftpException, SQLException {
if (progressListener != null) progressListener.onNewDir(path);
List entries = channel.ls(path);
for (ChannelSftp.LsEntry entry : entries) {
if (".".equals(entry.getFilename()) || "..".equals(entry.getFilename()))
continue;
SftpATTRS attrs = entry.getAttrs();
if (attrs.isDir()) {
scanRecursive(channel, path + File.separator + entry.getFilename());
}
else {
String name = entry.getFilename().toLowerCase();
int extensionPos = name.indexOf(".mp3");
if (extensionPos == -1)
continue;
String base = name.substring(0, extensionPos);
Song song = new Song();
String fullPath = path + File.separator + name;
fullPathArg.setValue(fullPath);
if (songDao.query(songInDbQuery).isEmpty()) {
Log.v(TAG, "adding to db: " + fullPath);
song.setFullPath(fullPath);
song.setName(base);
songDao.create(song);
String wordsSource = path.toLowerCase() + File.separator + base;
Matcher matcher = wordPattern.matcher(wordsSource);
for (; matcher.find(); ) {
WordMatch word = new WordMatch();
String wordStr = matcher.group(1);
word.setWord(wordStr);
word.setSong(song);
wordDao.create(word);
}
}
else {
Log.v(TAG, "already in db: " + fullPath);
}
}
}
}
開發者ID:egueli,項目名稱:ETStreamHome,代碼行數:47,
示例19: getSFTPMatchedFileNames
點讚 2
import com.jcraft.jsch.ChannelSftp; //導入方法依賴的package包/類
public static List getSFTPMatchedFileNames(ChannelSftp _channel, DateTime lastReadout, String filePath) {
filePath = filePath.replace("\\", "/");
String[] pathStream = getPathTokens(filePath);
String startPath = "";
if (filePath.startsWith("/")) {
startPath = "/";
}
List folderPathes = getSFTPMatchingPathes(startPath, pathStream, new ArrayList(), _channel, lastReadout, new DateTimeFormatterBuilder());
// System.out.println("foldersize,"+folderPathes.size());
List fileNames = new ArrayList();
if (folderPathes.isEmpty()) {
org.apache.log4j.Logger.getLogger(DataSourceHelper.class).log(org.apache.log4j.Level.ERROR, "Cant find suitable folder on the device");
return fileNames;
}
if (folderPathes.isEmpty()) {
org.apache.log4j.Logger.getLogger(DataSourceHelper.class).log(org.apache.log4j.Level.ERROR, "Cant find suitable folder on the device");
return fileNames;
}
String fileNameScheme = pathStream[pathStream.length - 1];
String currentfolder = null;
try {
for (String folder : folderPathes) {
// fc.changeWorkingDirectory(folder);
// System.out.println("currentFolder,"+folder);
currentfolder = folder;
// for (FTPFile file : fc.listFiles(folder)) {
// System.out.println(file.getName());
// }
// Vector ls = _channel.ls(folder);
for (Object fileName : _channel.ls(folder)) {
LsEntry currentFile = (LsEntry) fileName;
String currentFileName = currentFile.getFilename();
currentFileName = removeFoler(currentFileName, folder);
boolean match = false;
System.out.println(currentFileName);
if (DataSourceHelper.containsTokens(fileNameScheme)) {
boolean matchDate = matchDateString(currentFileName, fileNameScheme);
DateTime folderTime = getFileTime(folder + currentFileName, pathStream);
boolean isLater = folderTime.isAfter(lastReadout);
if (matchDate && isLater) {
match = true;
}
} else {
Pattern p = Pattern.compile(fileNameScheme);
Matcher m = p.matcher(currentFileName);
match = m.matches();
}
if (match) {
fileNames.add(folder + currentFileName);
}
}
}
} catch (Exception ex) {
org.apache.log4j.Logger.getLogger(DataSourceHelper.class).log(org.apache.log4j.Level.ERROR, "Error while searching a matching file");
org.apache.log4j.Logger.getLogger(DataSourceHelper.class).log(org.apache.log4j.Level.ERROR, "Folder: " + currentfolder);
org.apache.log4j.Logger.getLogger(DataSourceHelper.class).log(org.apache.log4j.Level.ERROR, "FileName: " + fileNameScheme);
org.apache.log4j.Logger.getLogger(DataSourceHelper.class).log(org.apache.log4j.Level.ERROR, ex.getMessage());
}
if (folderPathes.isEmpty()) {
org.apache.log4j.Logger.getLogger(DataSourceHelper.class).log(org.apache.log4j.Level.ERROR, "Cant find suitable files on the device");
}
// System.out.println("filenamesize"+fileNames.size());
return fileNames;
}
開發者ID:OpenJEVis,項目名稱:JECommons,代碼行數:69,
注:本文中的com.jcraft.jsch.ChannelSftp.ls方法示例整理自Github/MSDocs等源碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。