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

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

java.util.zip-重新創(chuàng)建目錄結(jié)構(gòu)

java.util.zip-重新創(chuàng)建目錄結(jié)構(gòu)

肥皂起泡泡 2019-12-26 09:49:11
在嘗試使用zip壓縮存檔時(shí),java.util.zip我遇到了很多問題,而這些問題大部分都是我解決的?,F(xiàn)在,我終于獲得了一些輸出,我在努力獲得“正確的”輸出。我有一個(gè)提取的ODT文件(目錄將更適合描述),對此我做了一些修改?,F(xiàn)在,我想壓縮該目錄以重新創(chuàng)建ODT文件結(jié)構(gòu)。將目錄壓縮并重命名以.odt結(jié)尾可以正常工作,因此應(yīng)該沒有問題。主要問題是我丟失了目錄的內(nèi)部結(jié)構(gòu)。一切都變得“平坦”,我似乎沒有找到保留原始多層結(jié)構(gòu)的方法。我希望對此有所幫助,因?yàn)槲宜坪跽也坏絾栴}。以下是相關(guān)的代碼段:ZipOutputStream out = new ZipOutputStream(new FileOutputStream(    FILEPATH.substring(0, FILEPATH.lastIndexOf(SEPARATOR) + 1).concat("test.zip")));    compressDirectory(TEMPARCH, out);該SEPARATOR是系統(tǒng)文件分隔符和FILEPATH是原來的ODT,我將覆蓋,但還沒有在這里完成的用于測試目的的文件路徑。我只是寫到同一目錄中的test.zip文件。private void compressDirectory(String directory, ZipOutputStream out) throws IOException{    File fileToCompress = new File(directory);    // list contents.    String[] contents = fileToCompress.list();    // iterate through directory and compress files.    for(int i = 0; i < contents.length; i++)    {        File f = new File(directory, contents[i]);        // testing type. directories and files have to be treated separately.        if(f.isDirectory())        {            // add empty directory            out.putNextEntry(new ZipEntry(f.getName() + SEPARATOR));            // initiate recursive call            compressDirectory(f.getPath(), out);            // continue the iteration            continue;        }else{             // prepare stream to read file.             FileInputStream in = new FileInputStream(f);             // create ZipEntry and add to outputting stream.             out.putNextEntry(new ZipEntry(f.getName()));             // write the data.             int len;             while((len = in.read(data)) > 0)             {                 out.write(data, 0, len);             }             out.flush();             out.closeEntry();             in.close();         }     } }包含要壓縮文件的目錄位于用戶空間中的某個(gè)位置,而不與結(jié)果文件位于同一目錄中。我認(rèn)為這可能很麻煩,但我真的看不出來。我也發(fā)現(xiàn)問題可能出在使用相同的流進(jìn)行輸出,但是我再也看不到如何。我在一些示例和教程中看到了它們使用的getPath()替代方法,getName()但進(jìn)行更改后得到的壓縮文件為空。
查看完整描述

3 回答

  • 3 回答
  • 0 關(guān)注
  • 1137 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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