我有执行以下操作的Java代码:
File.createTempFile()
创建一个带有ZIP扩展名的临时空文件File.delete()
删除它(我们只希望它生成临时文件名)com.google.commons.io.ByteStreams.copy()
将"template" ZIP文件复制到与OutputSupplier
相同的路径在特定系统上,步骤4与
FsReadOnlyArchiveFileSystemException - "This is a read-only archive file system!"
一致失败(请参阅http://java.net/projects/truezip/lists/users/archive/2011-05/message/9)在调试TrueZIP代码时,我注意到以下几点:
这是您在调试器表达式列表中看到的内容:
fn => "C:/myworkdir/temp/myfile4088293380313057223tmp.zip"
java.nio.file.Files.isWritable(java.nio.file.Paths.get(fn)) => false
new java.io.File(fn).canWrite() => true
使用JDK 1.7.04
有任何想法吗?
最佳答案
Windows下的java.nio.file.Files.isWritable中有一个错误:
它不会考虑隐式权限。
java bug #7190897
关于java - java.nio.file.Files.isWriteable与java.io.File.canWrite()不同,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12688287/