簡體   English   中英

ionic 2解壓縮資產中的zip文件

[英]ionic 2 Unzip zip file in assets

我這樣做:

this.zip.unzip('../../assets/eval.zip', '../../assets/folder', (progress) => console.log('Unzipping, ' + Math.round((progress.loaded / progress.total) * 100) + '%'))
     .then((result) => {
      console.log();
       if(result === 0) console.log('SUCCESS');
       if(result === -1) console.log('FAILED');
     });

我在瀏覽器和android中對其進行了測試,但始終“失敗”;

在android設備上運行它,並查看android studio設備日志記錄工具(android設備監視器)上的日志。 您將找到錯誤的確切原因。 我有這個錯誤。 原因是離子找不到指定的文件夾,因此我使用了this.file.externalDataDirectory或您選擇的目錄,格式為“ file:/// storage / emulated / 0 / yourPath”。

// this.import(this.file.externalDataDirectory + '/Spark.epub', this.file.externalDataDirectory + '/spark');

this.file.checkDir(this.file.externalDataDirectory +'assets/folder','')
      .then(_ => {
      this.file.checkFile(this.file.externalDataDirectory +'assets/eval.zip','')
      .then(_ => {
      this.zip.unzip(this.file.externalDataDirectory +'assets/eval.zip', this.file.externalDataDirectory +'assets/folder', 
      (progress) => console.log('Unzipping, ' + Math.round((progress.loaded / progress.total) * 100) + '%'))
      .then((data) => {
        /* Wow everything goes good, but just in case verify data.success */
        console.log(data);
      }).then((error) => {
          /* Wow something goes wrong, check the error.message */
          console.log(error);
          debugger;
      })
      }).catch(err => console.log('file doesn\'t exist'));
      }).catch(err => console.log('Directory doesn\'t exist'));

我可以告訴您,您無法從www/assets文件夾解壓縮,您需要將該zip文件復制到設備的系統目錄中,例如this.file.dataDirectory ,然后在此處執行解壓縮。

我已經測試過,它可以工作。

參考: https : //github.com/MobileChromeApps/cordova-plugin-zip/issues/56

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM