Java/Groovy:ZIP文件并为其分配权限
我正在为Maven Assembly插件开发基于groovy的helper,我一直在进行权限管理。我正在Windows计算机上创建程序集,这意味着本机unix风格的权限管理不可用Java/Groovy:ZIP文件并为其分配权限,java,groovy,zip,archive,zipfile,Java,Groovy,Zip,Archive,Zipfile,我正在为Maven Assembly插件开发基于groovy的helper,我一直在进行权限管理。我正在Windows计算机上创建程序集,这意味着本机unix风格的权限管理不可用 是否可以使用Groovy/Java压缩某些文件,同时指定要分配给存档中文件的权限?有一种方法: .setUnixMode(int unixMode) 为后代提供完整的工作样本: import java.io.File; import java.io.FileInputStream; import java.io.Fi
是否可以使用Groovy/Java压缩某些文件,同时指定要分配给存档中文件的权限?有一种方法:
.setUnixMode(int unixMode)
为后代提供完整的工作样本:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import org.apache.commons.compress.archivers.ArchiveException;
import org.apache.commons.compress.archivers.ArchiveOutputStream;
import org.apache.commons.compress.archivers.ArchiveStreamFactory;
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
import org.apache.commons.compress.utils.IOUtils;
public class Archiver {
public static void main(String[] args) throws ArchiveException, IOException {
/* Create Output Stream that will have final zip files */
OutputStream zip_output = new FileOutputStream(new File(
"zip_output.zip"));
/*
* Create Archive Output Stream that attaches File Output Stream / and
* specifies type of compression
*/
ArchiveOutputStream logical_zip = new ArchiveStreamFactory()
.createArchiveOutputStream(ArchiveStreamFactory.ZIP, zip_output);
/* Create Archieve entry - write header information */
ZipArchiveEntry e1 = new ZipArchiveEntry("z1/labrat-1.txt");
e1.setUnixMode(0777);
logical_zip.putArchiveEntry(e1);
/* Copy input file */
IOUtils.copy(new FileInputStream(new File("labrat-1.txt")), logical_zip);
/* Close Archieve entry, write trailer information */
logical_zip.closeArchiveEntry();
/* Repeat steps for file - 2 */
ZipArchiveEntry e2 = new ZipArchiveEntry("z2/labrat-2.txt");
e2.setUnixMode(0777);
logical_zip.putArchiveEntry(e2);
IOUtils.copy(new FileInputStream(new File("labrat-2.txt")), logical_zip);
logical_zip.closeArchiveEntry();
/* Finish addition of entries to the file */
logical_zip.finish();
/* Close output stream, our files are zipped */
zip_output.close();
}
}
可能相关: