第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

printWorkingDirectory() 給出空值

printWorkingDirectory() 給出空值

ITMISS 2023-05-17 16:59:54
我在下面編寫了一段代碼,用于將 Excel 記錄插入到數據庫表中。Excel 文件在 ftp 服務器上。基本上我首先改變目錄abd retrievig 文件流。readExcel(String test, String filename) {     client.changeWorkingDirectory("/"+test);     is =  client.retrieveFileStream(filename");     //do the processing }上面的代碼一次運行良好。但是現在我想循環(huán)使用上面的代碼并上傳多個文件。我這樣做了,發(fā)現只有第一個文件得到了正確處理,第二個文件卡在了方法上方client.retrieveFileStream()。在我對循環(huán)中的第一個文件使用printWorkingDirectory()之前和之后的方法之后,它在之前和之后給出了正確的目錄。changeWorkingDirectory()但是在循環(huán)中第二次它給出了 null 兩次并且代碼之前被卡住了。retrieveFileStream().根據我的說法,問題是因為changeWorkingDirectory()被多次調用。
查看完整描述

2 回答

?
紫衣仙女

TA貢獻1839條經驗 獲得超15個贊

changeWorkingDirectory()返回一個布爾值來指示成功或失敗,但它在失敗時隱藏了失敗的原因。如果查看源代碼:


public boolean changeWorkingDirectory(String pathname) throws IOException

{

    return FTPReply.isPositiveCompletion(cwd(pathname));

}

它只是包裝對cwd.


現在如果你想要失敗的原因,你可以這樣寫你的函數:


readExcel(String test, String filename) {

    int returnCode = client.cwd("/"+test);

    if ( FTPReply.isPositiveCompletion( returnCode ) ) {

        is =  client.retrieveFileStream(filename");

        //do the processing

    }

    else {

        System.out.println("Cannot cd to " + filename + " errorcode="+returnCode);

    }

}

然后只需查找您收到的代碼的含義即可。


查看完整回答
反對 回復 2023-05-17
?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

我今天遇到了同樣的問題:

循環(huán)client.retrieveFileStream()一次打印正確的工作目錄,但第二次client.printWorkingDirectory()只打印null

在我的例子中,我只是將文件下載類型從 更改client.retrieveFile()client.retrieveFileStream(),這需要client.completePendingCommand()在之后調用。文件說:

如果不這樣做,后續(xù)命令可能會出現意外行為。

更改您發(fā)布的代碼,它看起來像這樣:

readExcel(String test, String filename) {

    client.changeWorkingDirectory("/"+test);

    is =  client.retrieveFileStream(filename");

    //do the processing


    if(client.completePendingCommand()) {

        //File transfer successful

    } else {

        //File transfer failed

    }

}

但是現在我想循環(huán)使用上面的代碼并上傳多個文件。

我知道這個問題已經回答了,所以這是給所有發(fā)現它的人的:

如果你想上傳/下載多個文件(如果所有文件都應該進入/在同一個文件夾中?。┠銘撝辉谝婚_始就改變工作目錄,因為:

一旦您登錄到服務器,它會將工作目錄設置為根目錄(例如\)。如果您隨后遍歷文件并嘗試每次都更改目錄,則會發(fā)生這種情況:

  • 第一次循環(huán)迭代:它將切換到您想要的目錄,例如 \subdir.

  • 第二次循環(huán)迭代:當前目錄仍然是\subdir,因此它會嘗試切換到\subdir\subdir,它可能存在也可能不存在。

  • 第三次循環(huán)迭代:當前目錄是\subdir\subdir,它會嘗試切換到\subdir\subdir\subdir.

一旦您注銷并再次登錄,工作目錄將\再次成為根目錄(例如 )。


查看完整回答
反對 回復 2023-05-17
  • 2 回答
  • 0 關注
  • 225 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號