【问题标题】:android problem in extracting zip file using ZipFile使用 ZipFile 提取 zip 文件的 android 问题
【发布时间】:2010-06-22 08:56:01
【问题描述】:

试试{

File f = new File("/data/cizip.zip");
 if(f.exists()){
   ZipFile zf = new ZipFile(f); //this always throws an error
/*some of my codes here*/
}
catch(IOException e){
   AlertDialog.Builder abd = new AlertDialog.Builder(this);
   abd.setMessage(e.getMessage());
   abd.show();
}

ZipFile zf = new ZipFile(f); 行总是抛出错误,我不知道为什么。并且错误消息是文件名(“/data/cizip.zip”),因此我不知道错误的原因。有人可以告诉我是什么导致了这个错误吗?提前致谢。

【问题讨论】:

  • 如果 getMessage() 没有返回足够的信息,您可能需要更仔细地检查异常,例如 printStackTrace() - 并检查 logcat。

标签: android extract zipfile


【解决方案1】:

这只是一个猜测,但也许文件正在使用(锁定)?我看不出您的代码有任何明显错误...

【讨论】:

  • 好的.. 但是是什么让它被锁定?我没有使用/打开它。顺便说一句,我只是在使用模拟器。
  • 同意,用canRead()exists() 来测试文件是否可以读取不会有什么坏处
  • @Joubarc:我听从了你的建议,通过设置 canRead() 条件,结果为假。这是否意味着它被锁定?但为什么?我不明白为什么我的 zip 文件被锁定,因为我没有使用它。
  • 可能因为权限问题而无法读取文件?例如,它可能是由另一个应用程序使用MODE_PRIVATE 编写的。您可以尝试使用 sd 卡上的另一个文件,看看是否有区别?
【解决方案2】:

您的应用没有直接在 /data/ 目录中的读/写权限。您应该使用正确的子文件夹“/data/data/your.program.package/”或仅使用“/sdcard/”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多