【问题标题】:Maintain file permissions while unzipping in clojure在 clojure 中解压缩时保持文件权限
【发布时间】:2016-01-29 03:51:41
【问题描述】:

我想从一个 zip 包中解压缩文件,其中可以包含文本、可执行文件。我已经找到了使用 Java 互操作在给定位置解压缩文件内容的方法。

但是,在给定位置解压缩所有内容后,我无法运行可执行文件,因为权限未设置为文件上的可执行文件。

我正在使用 Java API 中的 ZipInputStream 和 BufferedOutputStream 来分别读取和写入。我认为我的代码没有任何问题,因为我可以看到副作用并且文件已按预期解压缩。另外,我检查了文件的权限,没有一个可执行文件有 x 权限。

当然,我可以运行 unzip 命令,这应该可以处理所有事情,但我不确定该程序将在哪个平台上运行。所以,我想我会以编程方式解压缩所有内容。

我真的可以使用 unzip 命令吗?或者有没有其他推荐的方式?

谢谢。

【问题讨论】:

标签: clojure unzip java-interop


【解决方案1】:

如果您的程序在磁盘上创建文件,那么设置权限是该程序的责任。听起来每个文件都获得了默认文件权限,其中不包括设置可执行位。

如果您使用的库允许您访问为存档中给定文件存储的权限,那么在完成写入文件后重置文件的权限将相当简单。

如果您要解压其他人提供的文件,请务必牢记安全。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-27
    • 2020-07-26
    • 1970-01-01
    • 2010-09-21
    • 1970-01-01
    • 2015-07-05
    • 1970-01-01
    • 2013-10-30
    相关资源
    最近更新 更多