- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要从我的 Assets 文件夹中解压一个 zip 文件到 SD 卡,以完成安装。
由于zip大约有10MB大,我把它作为一个mp3文件放在assets文件夹中,然后将存档复制到SD卡(md5和是一样的)。
然后就是解压的问题了:zip文件在stackoverflow上的各种解压方法我都试过了,都不行。
我正在使用的部分工作 - 有时它会提取所有文件,但大多数时候它会在中间崩溃(给我一个非常长的调试输出)。
我附上了代码和部分输出。
有人可以帮忙吗?而且它不一定是 zip 文件,任何其他存档格式(如 tar)也可以。 /edit:我在服务中运行这段代码,这可能是个问题吗?
提取代码:
private final static int CHUNK_SIZE = 32 * 1024;
public static void unzipFile( String zipFile, String directory)
throws IOException
{
byte[] _fileIOBuffer = new byte[CHUNK_SIZE];
ZipInputStream in = null;
FileOutputStream os = null;
try
{
in = new ZipInputStream (new FileInputStream(new File(zipFile)));
ZipEntry entry = null;
while ((entry = in.getNextEntry ())!= null)
{
String entryName = entry.getName();
if (entry.isDirectory ()) {
File file = new File (directory, entryName);
file.mkdirs();
}
else {
File file = new File(directory, entryName);
if (file.exists()){
file.delete(); // I don't know how to append, so delete it always
}
os = new FileOutputStream (file);
int bytesRead = 0;
while ((bytesRead = in.read (_fileIOBuffer))!= -1) {
os.write(_fileIOBuffer, 0, bytesRead);
// progress procedure
}
os.close();
}
}
}
catch (FileNotFoundException e) {
Log.v("unzip", e.getMessage());
}
catch (IOException e) {
Log.v("unzip", e.getMessage());
}
finally{
if (in != null ){
in.close();
}
if (os != null ){
os.close();
}
}
}
一些日志输出:
W/dalvikvm(23094): "Binder Thread #1" prio=5 tid=5 NATIVE
W/dalvikvm(23094): | group="main" sCount=1 dsCount=0 s=N obj=0x46e7a300 self=0x12aba8
W/dalvikvm(23094): | sysTid=23098 nice=0 sched=3/0 cgrp=unknown handle=1369000
W/dalvikvm(23094): | schedstat=( 806168347 48580865164 5171 )
W/dalvikvm(23094): at dalvik.system.NativeStart.run(Native Method)
W/dalvikvm(23094):
W/dalvikvm(23094): "Compiler" daemon prio=5 tid=4 VMWAIT
W/dalvikvm(23094): | group="system" sCount=1 dsCount=0 s=N obj=0x46e732a0 self=0x125638
W/dalvikvm(23094): | sysTid=23097 nice=0 sched=3/0 cgrp=unknown handle=1225832
W/dalvikvm(23094): | schedstat=( 864668103 47259131847 4450 )
W/dalvikvm(23094): at dalvik.system.NativeStart.run(Native Method)
W/dalvikvm(23094):
W/dalvikvm(23094): "Signal Catcher" daemon prio=5 tid=3 RUNNABLE
W/dalvikvm(23094): | group="system" sCount=0 dsCount=0 s=N obj=0x46e731e8 self=0x12b278
W/dalvikvm(23094): | sysTid=23096 nice=0 sched=3/0 cgrp=unknown handle=1308736
W/dalvikvm(23094): | schedstat=( 113256650 45104360665 3544 )
W/dalvikvm(23094): at dalvik.system.NativeStart.run(Native Method)
W/dalvikvm(23094):
W/dalvikvm(23094): "HeapWorker" daemon prio=5 tid=2 VMWAIT
W/dalvikvm(23094): | group="system" sCount=1 dsCount=0 s=N obj=0x448f6f78 self=0x149d40
W/dalvikvm(23094): | sysTid=23095 nice=0 sched=3/0 cgrp=unknown handle=1304104
W/dalvikvm(23094): | schedstat=( 1423918773 45794713359 3888 )
W/dalvikvm(23094): at dalvik.system.NativeStart.run(Native Method)
W/dalvikvm(23094):
W/dalvikvm(28514):
W/dalvikvm(28514):
W/dalvikvm(28514): ----- pid 28514 at 2011-12-10 17:08:17 -----
W/dalvikvm(28514): Cmd line: com.google.android.apps.maps:NetworkLocationService
W/dalvikvm(28514):
W/dalvikvm(28514): DALVIK THREADS:
W/dalvikvm(28514): "main" prio=5 tid=1 WAIT
W/dalvikvm(28514): | group="main" sCount=1 dsCount=0 s=N obj=0x4001d938 self=0xcd98
W/dalvikvm(28514): | sysTid=28514 nice=0 sched=3/0 cgrp=unknown handle=-1345017808
W/dalvikvm(28514): | schedstat=( 1203913753 1177626459 364 )
W/dalvikvm(28514): at java.lang.Object.wait(Native Method)
W/dalvikvm(28514): - waiting on <0x46faf6c8> (a android.os.MessageQueue)
W/dalvikvm(28514): at java.lang.Object.wait(Object.java:288)
W/dalvikvm(28514): at android.os.MessageQueue.next(MessageQueue.java:146)
W/dalvikvm(28514): at android.os.Looper.loop(Looper.java:110)
W/dalvikvm(28514): at android.app.ActivityThread.main(ActivityThread.java:4627)
W/dalvikvm(28514): at java.lang.reflect.Method.invokeNative(Native Method)
W/dalvikvm(28514): at java.lang.reflect.Method.invoke(Method.java:521)
W/dalvikvm(28514): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
W/dalvikvm(28514): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
W/dalvikvm(28514): at dalvik.system.NativeStart.main(Native Method)
W/dalvikvm(28514):
W/dalvikvm(28514): "RefQueueWorker@org.apache.http.impl.conn.tsccm.ConnPoolByRoute@47054bc0" daemon prio=5 tid=16 WAIT
W/dalvikvm(28514): | group="main" sCount=1 dsCount=0 s=N obj=0x47036980 self=0x242a70
W/dalvikvm(28514): | sysTid=28535 nice=0 sched=3/0 cgrp=unknown handle=1227616
W/dalvikvm(28514): | schedstat=( 206874 20758542 2 )
W/dalvikvm(28514): at java.lang.Object.wait(Native Method)
W/dalvikvm(28514): - waiting on <0x46fd3838> (a java.lang.ref.ReferenceQueue)
W/dalvikvm(28514): at java.lang.Object.wait(Object.java:326)
W/dalvikvm(28514): at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:107)
W/dalvikvm(28514): at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:80)
W/dalvikvm(28514): at org.apache.http.impl.conn.tsccm.RefQueueWorker.run(RefQueueWorker.java:102)
W/dalvikvm(28514): at java.lang.Thread.run(Thread.java:1096)
W/dalvikvm(28514):
W/dalvikvm(28514): "NetworkLocationCallbackRunner" prio=5 tid=15 WAIT
W/dalvikvm(28514): | group="main" sCount=1 dsCount=0 s=N obj=0x470429d8 self=0x13c4c8
W/dalvikvm(28514): | sysTid=28534 nice=-4 sched=3/0 cgrp=unknown handle=1248160
W/dalvikvm(28514): | schedstat=( 568270822 541402506 640 )
W/dalvikvm(28514): at java.lang.Object.wait(Native Method)
W/dalvikvm(28514): - waiting on <0x47112b88> (a android.os.MessageQueue)
W/dalvikvm(28514): at java.lang.Object.wait(Object.java:288)
W/dalvikvm(28514): at android.os.MessageQueue.next(MessageQueue.java:146)
W/dalvikvm(28514): at android.os.Looper.loop(Looper.java:110)
W/dalvikvm(28514): at com.google.android.location.os.real.i.run((null):-1)
W/dalvikvm(28514): at java.lang.Thread.run(Thread.java:1096)
W/dalvikvm(28514):
W/dalvikvm(28514): "Thread-16" daemon prio=1 tid=14 WAIT
W/dalvikvm(28514): | group="main" sCount=1 dsCount=0 s=N obj=0x470706a0 self=0x243c38
W/dalvikvm(28514): | sysTid=28533 nice=19 sched=3/0 cgrp=unknown handle=2374056
W/dalvikvm(28514): | schedstat=( 343958 16096459 3 )
W/dalvikvm(28514): at java.lang.Object.wait(Native Method)
W/dalvikvm(28514): - waiting on <0x470709c8> (a java.lang.VMThread)
W/dalvikvm(28514): at java.lang.Thread.parkFor(Thread.java:1535)
W/dalvikvm(28514): at java.lang.LangAccessImpl.parkFor(LangAccessImpl.java:48)
W/dalvikvm(28514): at sun.misc.Unsafe.park(Unsafe.java:317)
W/dalvikvm(28514): at java.util.concurrent.locks.LockSupport.park(LockSupport.java:131)
W/dalvikvm(28514): at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1996)
W/dalvikvm(28514): at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)
W/dalvikvm(28514): at b.a.run((null):-1)
最佳答案
in.read(byte[])
未在 ZipInputStream
上定义,而是在父类 FilterInputStream
上定义。我假设它弄乱了 ZipInputStream
的入口边界。
关于android - Zip 提取失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8457927/
我有这个命令: 7z e -oD:\Data\ODS_Source\* D:\Data\DATA_DROP\Source.zip 这导致 D:\Data\ODS_Source\Source\. 我需要
我正在尝试让 Ionic zip 将 zip 文件内的文件夹提取到指定的根目录中。我的问题是里面的zip文件是“zipfile.zip\some_folder\”。我想将“some_folder”中的
我试图让 Ionic zip 将 zip 文件中的文件夹提取到指定的根目录中。我的问题是里面的 zip 文件是“zipfile.zip\some_folder\”。我想将“some_folder”中的
题目 监听服务器端口,得到题目如下: 源码解析 主函数 主函数中是题目界面的逻辑,对应于用户的选择做出相应的操作,其中需要注意的是选项2,解压操作需要获得root权
我有许多需要分发给用户的zip文件,其中约有130个。每个zip文件都包含许多相似的文本,html,xml和jpg文件。压缩文件总计146兆字节;解压缩后,其内容总计551mb。 我想将所有这些文件以
我正在使用 javascript zip.js图书馆。我到处搜索,但找不到将多个文件添加到 zip 的示例。 这是我的代码,但它生成了一个“损坏的”zip。 var len = results.row
在 C# 中,我使用的是 DotNetZip我有一个名为“innerZip.zip”的 zip,其中包含一些数据,和另一个名为“outerZip.zip”的 zip,其中包含 innerZip。我为什
当我使用 library(xlsx) 中的 write.xlsx 时,控制台中会出现以下内容: Note: zip::zip() is deprecated, please use zip::zipr
如果我因为问“非编程”问题而被拒绝,我不会太惊讶,但也许有人知道...... 我正在使用 WinXP 的内置“发送到压缩(zipped)文件夹”功能压缩我的 subversion 沙箱的内容,并惊讶地
我在 Elixir 中有一个二进制字符串,它由压缩字节组成,我想放气并从中提取“真实数据”: iex(93)> data > 我不确定如何解压缩这些数据。到目前为止,我已经: 浏览了 Official
有没有一种方法可以创建一个 zip 文件并强制它在命令行中包含数据描述符部分? 最佳答案 在 Github ( https://github.com/adamhathcock/sharpcompres
我已经有 PBDT.csj and RDK.csj使用此 ( https://www.blackberry.com/SignedKeys/codesigning.html ) 链接进行代码签名处理后的
我研究了几天,发现我们可以将一个包含一些内容的文件添加到 zip 文件中,然后再次压缩它。然后注释将被添加到 zip 文件中,但我不知道该文件到底是什么,所以任何人都知道向 zip(压缩)文件添加注释
我想知道如何找到 zip 文件的压缩级别。 7z 和 winzip 制作的 Zip 文件具有不同的级别评级,因此我想将其中的一些映射到其他工具中的相应级别。 store level 或 level 0
到目前为止,对于Zip文件的Mime类型,我已经看到: 应用程序/八位字节流 multipart / x-zip 应用程序/ zip 应用程序/ zip压缩的 应用程序/ x-zip压缩的 我想我的问
我已经在 google 上搜索、在 wiki 上搜索并阅读了 ZIP 的 RFC,但找不到有关 ZIP 中使用的确切算法的任何信息。 我找到了有关 ZIP == TAR + GZIP 的信息 但是,我
我有这些自解压 zip 文件,我正试图在 2008/7 机器上远程解压这些文件。但它们是以 .exe 的方式出现的,它需要用户双击并选择提取位置。 在 WinZip 支持网站上,他们说要使用/auto
这是我在这里的第一个问题,请耐心等待。 我的目标是在 C# 中创建一个基本的 .zip 存档。我已经尝试使用 .NET 的内置 GZipStream 类并设法实现了这一点,但是我遇到了一个问题,我无法
能否为压缩文件中的压缩文件创建 java.nio.file.FileSystem? 如果是这样,URI 是什么样的? 如果没有,我想我将不得不退回到使用 ZipInputStream。 我正在尝试递归
我想在 here 安装 scala我很关心下载哪一个:zip 还是 tgz。它们之间有什么区别,用例是什么? 最佳答案 它们是不同的archive formats .使用它们是因为它可以节省带宽并且因
我是一名优秀的程序员,十分优秀!