Java 如何使用文件创建临时目录结构

Java 如何使用文件创建临时目录结构,java,junit,Java,Junit,我面临以下问题:我想创建一个简单的目录结构,由一个根文件夹、两个子文件夹组成,每个子文件夹应该包含两个文件。我是如何做到的,哪些不起作用: TemporaryFolder temp = new TemporaryFolder(); File rootFolder = temp.newFolder("rootFolder"); File child1 = temp.newFolder(rootFolder.getName(), "childFolder1"); File child2 = temp

我面临以下问题:我想创建一个简单的目录结构,由一个根文件夹、两个子文件夹组成,每个子文件夹应该包含两个文件。我是如何做到的,哪些不起作用:

TemporaryFolder temp = new TemporaryFolder();
File rootFolder = temp.newFolder("rootFolder");
File child1 = temp.newFolder(rootFolder.getName(), "childFolder1");
File child2 = temp.newFolder(rootFolder.getName(), "childFolder2");

上面的代码正确地创建了目录结构。我无法在给定文件夹下创建文件,因为newFile()方法只接受filename(不能包含特殊字符),并在root temp下而不是在我创建的树中创建文件。有什么想法吗?

没有junit专门用于创建临时文件的内容?链接到API for java.io.file createTempFile静态方法,该方法采用目录和前缀后缀

只需使用
java.io.file

new File(child1, "some-file.txt")

将在
child1
文件夹下创建一个名为“some file.txt”的文件。它们仍将按照
TemporaryFolder
规则作为临时文件进行清理。您正在使用
@Rule
注释,对吗?

如果我正确理解您的问题,我认为使用更多File类提供的内容会有所帮助。看

我认为如果你尝试这样的方法,你会有一个更典型的方法:

File tempfldr = new File("C:\\rootFolder\\childFolder1");
tempfldr.mkdirs();
File tempfldr2 = new File("C:\\rootFolder\\childFolder2");
tempfldr2.mkdirs();
File child1 = File.createTempFile("prefix_val", "suffix_val", tempfldr);
File child2 = File.createTempFile("prefix_val", "suffix_val", tempfldr2);

请编辑您的答案以添加链接中的上下文。这有助于避免链接损坏造成的问题。感谢您的回答。我正在努力使用JUnit中的某个内容。你是对的,因为我使用@Rule注释,使用文件api创建的文件也将被删除。