如何创建带文件的临时目录结构

3
我遇到了以下问题:我想创建一个简单的目录结构,包括一个根目录、两个子文件夹,每个子文件夹应包含两个文件。我如何做到这一点以及什么不能正常工作:
TemporaryFolder temp = new TemporaryFolder();
File rootFolder = temp.newFolder("rootFolder");
File child1 = temp.newFolder(rootFolder.getName(), "childFolder1");
File child2 = temp.newFolder(rootFolder.getName(), "childFolder2");

以上代码已经正确创建了目录结构。我无法在给定的文件夹下创建文件,因为newFile()方法只接受文件名(不能包含特殊字符),并在根临时目录下创建文件而不是在我创建的目录树中。有什么想法吗?
3个回答

6

只需使用 java.io.File

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

将在child1文件夹下创建一个名为"some-file.txt"的文件。它们仍然会被TemporaryFolder规则清理为临时文件。您正在使用@Rule注释,对吗?


谢谢你的回答。我一直在努力使用JUnit中的某些内容。你说得对,当我使用@Rule注释时,使用File API创建的文件也将被删除。 - user3450486

4
如果我理解您的问题正确,我认为更多地利用File类所提供的功能将会有所帮助。请参见 http://docs.oracle.com/javase/7/docs/api/java/io/File.html 我认为如果您尝试以下方式,您会有一个更典型的方法:
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);

0

2
请编辑您的答案,添加来自链接的上下文。这有助于避免由链接失效引起的问题。 - Sid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接