在Linux中使用NIO复制文件时的AccessDeniedException

时间:2014-10-31 10:05:40

标签: java linux copy nio access-denied

当我使用Java NIO中的Files.copy(Path input, Path output)方法时,会出现一种奇怪的行为。我使用了两个参数,REPLACE_EXISTING_FILECOPY_ATTRIBUTES

如果我将文件复制到Windows中的另一个目标,它就会像它应该的那样工作。但是如果我将它从linux目录复制到另一个目录,则会导致AccessDeniedException。写入文件,但复制的文件中没有数据(0字节)。

java.nio.file.AccessDeniedException: Path/To/Target/Nas/File
    at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
    at sun.nio.fs.UnixCopyFile.copyFile(UnixCopyFile.java:243)
    at sun.nio.fs.UnixCopyFile.copy(UnixCopyFile.java:575)
    at sun.nio.fs.UnixFileSystemProvider.copy(UnixFileSystemProvider.java:253)
    at java.nio.file.Files.copy(Files.java:1225)
    at ch.zkb.asy.asyarch.io.IO.copyFile(IO.java:356)
    at ch.zkb.asy.asyarch.io.IO.copyFile(IO.java:376)

为什么它在Windows中有效,而在Linux中无效?权限也应该没问题。

0 个答案:

没有答案