我想从zip包中解压缩文件,其中包含文本,可执行文件。我已经想出了使用Java互操作来解压缩给定位置文件内容的方法。
但是,在指定位置解压缩后,我无法运行可执行文件,因为文件上的权限未设置为可执行文件。
我正在使用来自Java API的ZipInputStream和BufferedOutputStream来分别进行读写。我认为我的代码没有任何问题,因为我可以看到副作用,并且文件按预期解压缩。此外,我检查了文件的权限,并且没有任何可执行文件具有x权限。
当然,我可以改为运行unzip命令,它应该处理所有事情,但我不确定该程序将在哪个平台上运行。所以,我以为我会以编程方式解压缩所有内容。
我真的可以使用解压缩命令吗?或者还有其他推荐方式吗?
感谢。
答案 0 :(得分:0)
如果您的程序正在装箱磁盘上的文件,则该程序负责设置权限。听起来每个文件都获得默认文件权限,这不包括设置可执行位。
如果您使用的库允许您访问存档中为给定文件存储的权限,那么在您完成编写文件后重置文件的权限将非常简单。
如果要打开其他人提供的文件,请务必保持安全。