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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

printWorkingDirectory() 給出空值

printWorkingDirectory() 給出空值

ITMISS 2023-05-17 16:59:54
我在下面編寫了一段代碼,用于將 Excel 記錄插入到數(shù)據(jù)庫表中。Excel 文件在 ftp 服務(wù)器上?;旧衔沂紫雀淖兡夸沘bd retrievig 文件流。readExcel(String test, String filename) {     client.changeWorkingDirectory("/"+test);     is =  client.retrieveFileStream(filename");     //do the processing }上面的代碼一次運(yùn)行良好。但是現(xiàn)在我想循環(huán)使用上面的代碼并上傳多個(gè)文件。我這樣做了,發(fā)現(xiàn)只有第一個(gè)文件得到了正確處理,第二個(gè)文件卡在了方法上方client.retrieveFileStream()。在我對(duì)循環(huán)中的第一個(gè)文件使用printWorkingDirectory()之前和之后的方法之后,它在之前和之后給出了正確的目錄。changeWorkingDirectory()但是在循環(huán)中第二次它給出了 null 兩次并且代碼之前被卡住了。retrieveFileStream().根據(jù)我的說法,問題是因?yàn)閏hangeWorkingDirectory()被多次調(diào)用。
查看完整描述

2 回答

?
紫衣仙女

TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊

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


public boolean changeWorkingDirectory(String pathname) throws IOException

{

    return FTPReply.isPositiveCompletion(cwd(pathname));

}

它只是包裝對(duì)cwd.


現(xiàn)在如果你想要失敗的原因,你可以這樣寫你的函數(shù):


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);

    }

}

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


查看完整回答
反對(duì) 回復(fù) 2023-05-17
?
汪汪一只貓

TA貢獻(xiàn)1898條經(jīng)驗(yàn) 獲得超8個(gè)贊

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

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

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

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

更改您發(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

    }

}

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

我知道這個(gè)問題已經(jīng)回答了,所以這是給所有發(fā)現(xiàn)它的人的:

如果你想上傳/下載多個(gè)文件(如果所有文件都應(yīng)該進(jìn)入/在同一個(gè)文件夾中?。┠銘?yīng)該只在一開始就改變工作目錄,因?yàn)椋?/p>

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

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

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

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

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


查看完整回答
反對(duì) 回復(fù) 2023-05-17
  • 2 回答
  • 0 關(guān)注
  • 238 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)