4

当我打电话时,Files.createTempDirectory("")我得到以下异常:

java.lang.NullPointerException
at sun.nio.fs.WindowsSecurityDescriptor.fromAttribute(WindowsSecurityDescriptor.java:353)
at sun.nio.fs.WindowsFileSystemProvider.newByteChannel(WindowsFileSystemProvider.java:220)
at java.nio.file.Files.newByteChannel(Files.java:315)
at java.nio.file.Files.createFile(Files.java:586)
at java.nio.file.TempFileHelper.create(TempFileHelper.java:138)
at java.nio.file.TempFileHelper.createTempFile(TempFileHelper.java:161)
at java.nio.file.Files.createTempFile(Files.java:803)

Files.createTempDirectory("")我发现的使用示例都没有在任何FileAttributes 中传递。我已经尝试过,Files.createTempDirectory("", new FileAttribute<?>[] { });但它也没有帮助。

我在 Windows 7 系统上使用 32 位 JDK 7。我不是机器上的本地管理员。

有没有人遇到过这个?

更新 1:

Files.createTempFile(this.tempDir.toPath(), "tmpFile", "");似乎有同样的问题。

作为一种解决方法,我已移至com.google.common.io.Files.createTempDir().

4

1 回答 1

0

您是否尝试过使用Files.createTempDirectory(null)而不是Files.createTempDirectory(""). 在文档中,您可以读到可以将前缀作为空对象传递。

https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#createTempDirectory-java.lang.String-java.nio.file.attribute.FileAttribute...-

于 2019-05-30T11:54:26.783 回答