Noe*_*Yap 9 java apache-commons
当我使用时FileUtils.copyDirectory(),执行位被关闭为可执行文件.
我必须手动打开它们吗?
FWIW,我的umask设置为0027但看起来FileUtils.copyDirectory()没有使用该设置,因为除了执行位之外的"其他"权限被保留.
Java 7中即将推出的Filesystem将有所帮助.看看JSR-203.如果您使用的是Linux,则可以将后端与Java 6一起使用.
您想要的新API是:Files.copy(Path, Path, CopyOptions).需要注意的是CopyOptions有COPY_ATTRIBUTES,这将做你想做的.
由于 JVM 的限制,我认为这是不可能的。对于世界上最流行的语言/平台来说,IO api 和行为有点可耻。
如果您查看 FileUtils 源代码,在复制过程中它会创建如下所示的新文件
File copiedFile = new File(destDir, srcFile.getName());
Run Code Online (Sandbox Code Playgroud)
不保留文件权限。在实际复制过程中,字节会批量复制(缓冲)并写入新文件。
但是,您可以等待几天或使用 JDK7 的预览版,它具有 api 来允许此操作成为可能。
| 归档时间: |
|
| 查看次数: |
6237 次 |
| 最近记录: |