我使用这段代码,它完美地创建了zip文件,例如我有一个文件夹
SD卡/音乐,当我创建xxx时。它创建的zip文件。zip文件包括音乐/歌曲以及其中的一些子文件夹
但我想排除“音乐”中的主文件夹。压缩文件,并希望它直接开始,包括所有的歌曲和它的子文件夹,如何做到这一点
我使用这种方式,但在压缩时也使用主文件夹名称
public void unzipbutton(View v){ // button click
try {
FileOutputStream fos = new FileOutputStream("/mnt/sdcard/songs.zip");
ZipOutputStream zos = new ZipOutputStream(fos);
addDirToZipArchive(zos, new File("/mnt/sdcard/music"), null);
zos.flush();
fos.flush();
zos.close();
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void addDirToZipArchive(ZipOutputStream zos, File fileToZip, String parrentDirectoryName) throws Exception {
if (fileToZip == null || !fileToZip.exists()) {
return;
}
String zipEntryName = fileToZip.getName();
if (parrentDirectoryName!=null && !parrentDirectoryName.isEmpty()) {
zipEntryName = parrentDirectoryName + "/" + fileToZip.getName();
}
if (fileToZip.isDirectory()) {
System.out.println("+" + zipEntryName);
for (File file : fileToZip.listFiles()) {
addDirToZipArchive(zos, file, zipEntryName);
}
} else {
System.out.println(" " + zipEntryName);
byte[] buffer = new byte[1024];
FileInputStream fis = new FileInputStream(fileToZip);
zos.putNextEntry(new ZipEntry(zipEntryName));
int length;
while ((length = fis.read(buffer)) > 0) {
zos.write(buffer, 0, length);
}
zos.closeEntry();
fis.close();
}
}
有人帮忙吗谢谢
到目前为止,这一直很棘手,对我来说,现在没有办法工作:/
在你的ZipEntry检查zipEntryName的完整路径时,它必须是这样的:“music/Pink/try.mp3”只要调用一个子字符串,以获得zipEntryName“Pink/try.mp3”,你的zip文件将是相同的“songs.zip”,但在其中你会找到文件夹“Pink”,而不是主文件夹“music/Pink…”
它对我有用。
每次我试图编译它来测试它不recongnise文件
我正在寻找一种方法来获取zip文件中的文件列表。我创建了一个方法来获取目录中的文件列表,但我也在寻找一种方法来获取zip文件中的文件,而不是只显示zip文件。 以下是我的方法:
在一个项目中,我有3个src文件夹(src1、src2、src3)。我已经能够通过将文件夹合并到单个src中来编译它。 当我使用helper插件编译它并定义三个src文件夹时,我可以看到78个java文件正在编译,但在最终的包中只包含4个类文件。 “-X”没有用。
问题内容: 我正在尝试使用php创建一个zip文件(确实如此-从此页面获取-http://davidwalsh.name/create-zip- php ),但是zip文件中的所有文件夹名称都是文件本身。 可以将zip文件中的文件减去所有文件夹吗? 这是我的代码: 问题答案: 这里的问题是要传递相同的两个参数。 根据文档: bool ZipArchive :: addFile (字符串 $ fil
问题内容: 我有一个包含文件夹结构的zip文件,例如 主文件夹/ subFolder1 / subFolder2 / subFolder3 / 文件3.1 文件3.2 我想使用Java 重命名文件夹,例如在该zip文件中。 有没有比提取整个zip文件并使用新的文件夹名称重新创建一个新的方法更简单的方法? 问题答案: Zip是一种存档格式,因此变异通常涉及重写文件。 zip的某些特殊功能也会受阻(z