首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用NoSuchFileException时使用java.nio.file.Files.createTempDirectory

使用NoSuchFileException时使用java.nio.file.Files.createTempDirectory
EN

Stack Overflow用户
提问于 2018-03-05 11:47:28
回答 1查看 9.5K关注 0票数 2

在尝试使用java.nio.file.Files.createTempDirectory创建临时目录时,我遇到了一个问题。在创建目录时,我一直在获取NoSuchFileException。

这是我的代码:

代码语言:javascript
复制
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class TempFileTesting {
   private static final String ROOT = "/resources/";

   public static void main(String[] args) throws Exception{
      Path root = Paths.get(ROOT);
      Path tempDir = Files.createTempDirectory(root, "dir");
      Path tempFile = Files.createTempFile(tempDir, "t1", "t2");
   }
}

当我这样做时,我会在行中得到一个名为“NoSuchFileException”的createTempDirectory,尽管根路径显然是成功创建的。资源目录确实存在.

StackTrace看起来如下所示:

代码语言:javascript
复制
java.nio.file.NoSuchFileException: \resources\dir170003182480656885
at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:79)
at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)
at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102)
at sun.nio.fs.WindowsFileSystemProvider.createDirectory(WindowsFileSystemProvider.java:504)
at java.nio.file.Files.createDirectory(Files.java:674)
at java.nio.file.TempFileHelper.create(TempFileHelper.java:136)
at java.nio.file.TempFileHelper.createTempDirectory(TempFileHelper.java:173)
at java.nio.file.Files.createTempDirectory(Files.java:950)
at filetestingstuff.testers.TempFileTesting.main(TempFileTesting.java:15)

全路径:"C:\Users\Admin\Desktop\eclipse-oxygen\workspace\FileStuff\resources“

有人知道为什么会发生这种异常吗?我很感激你给我的任何建议,不管多小。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-05 11:52:35

您将"/resources/"指定为创建临时目录的目录的路径。

首先,它不是窗口的有效格式。当我测试时,它会在安装windows的驱动器根目录下创建temp目录。

此外,您还需要一个相对路径:"resources"到JVM的工作文件夹,即C:\Users\Admin\Desktop\eclipse-oxygen\workspace\FileStuff。请注意,不再需要尾随/

所以这应该能解决你的问题:

代码语言:javascript
复制
private static final String ROOT = "resources";     

最后,您应该避免使用文件夹作为C:\Users来包含您的Java源代码。你可能也有正确的问题。

它们应该位于非特定的Windows目录中。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49109808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档