当我致电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("")
的任何使用示例都没有在FileAttribute
中传递过。
我尝试了Files.createTempDirectory("", new FileAttribute<?>[] { });
,但也没有帮助。
我在Windows 7系统上使用32位JDK 7。 我不是机器上的本地管理员。
有没有人来过这个?
更新1:
Files.createTempFile(this.tempDir.toPath(), "tmpFile", "");
似乎也有同样的问题。
作为一种解决方法,我已转移到com.google.common.io.Files.createTempDir()
。
答案 0 :(得分:0)
您是否尝试过使用Files.createTempDirectory(null)
而不是Files.createTempDirectory("")
。在文档中,您可以阅读到有可能将前缀作为空对象传递。