我正在嘗試使用jsch庫將文件填充到遠程服務(wù)器。目錄結(jié)構(gòu)類似于'/ home / myname / batch_run_dt = 20180706 / batchid = P20180706001 / *'因此,基本目錄batch_run_dt包含多個子目錄(batchid = P20180706 *),此外還有子目錄。該結(jié)構(gòu)將以類似的方式在遠程服務(wù)器中維護。我正在使用下面的代碼來實現(xiàn)此功能。 public class Runner{ public static void main(String[] args) throws FileNotFoundException, IOException, SQLException, JSchException { Date todaydate = new Date(); Calendar cal = Calendar.getInstance(); cal.setTime(todaydate); cal.add(Calendar.DAY_OF_MONTH,-1); SimpleDateFormat ft = new SimpleDateFormat("yyyyMMdd"); String date = ft.format(cal.getTime()); logger.info("date :: " + date); // starting the process String partition = "batch_run_dt=" + date; getData(partition);} public static void getData(String partition) throws JSchException { logger.info("Starting download data "); // get the destination location String destLoc = "/home/myname/" + partition; // get source location from data needs to import through sftp String srcLoc = "/home/myname/" + partition; download(partition, prop, destLoc, srcLoc); logger.info("Finished download prov data ");}public static void download(String partition, Properties prop, String destLoc, String srcLoc) throws JSchException { // creaating a sesssion for jsch Session session = NonProdRunner.createjschsession("username", "password", "host"); // creating a channel from session Channel channel = session.openChannel("sftp"); channel.connect(); // creating sftp channel to connect 但是在第一個子文件夾加載后,在sftp中出現(xiàn)異常時出現(xiàn)錯誤:No such file。不確定我在這里缺少什么,請幫助解決此問題。
1 回答

墨色風(fēng)雨
TA貢獻1853條經(jīng)驗 獲得超6個贊
因為使用了,ls *
您將獲得文件和文件夾,然后將它們用于cd filename
。
可能性:
這是一個文件
用戶沒有正確的權(quán)利
檢查文檔以確認問題:
SftpException-如果命名路徑未指示目錄,用戶無法訪問該目錄或發(fā)生其他問題。
另一個可能的問題是,如果您嘗試移動到類似以下的文件夾中:
cd /root/folder*
該結(jié)構(gòu)提出了多個結(jié)果:
/root/folderA /root/folderB
由于該命令可以賦予result:folderA
和folderB
,因此您將獲得一個異常:
Exception in sftp:/root/folder* is not unique:
添加回答
舉報
0/150
提交
取消