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

时间:2015-08-26 15:59:03

标签: java junit

我遇到了以下问题:我想创建一个简单的目录结构,包含一个根文件夹,两个子文件夹,每个子文件夹应包含两个文件。我是如何做到的,什么不起作用:

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

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

3 个答案:

答案 0 :(得分:4)

只需使用new File(child1, "some-file.txt")

child1

将创建一个名为&#34; some-file.txt&#34;的文件。在TemporaryFolder文件夹下。它们仍将被@Rule规则清理为临时文件。您正在使用#!/bin/sh # this is run with POSIX sh export var1="tcsh can see this" var2="tcsh cannot see this" tcsh <<'EOF' # this is run with tcsh # exported variables (not shell-local variables!) from above are present var3="calling shell cannot see this, even if exported" EOF # this is run in the original POSIX sh shell after tcsh has exited # only variables set in the POSIX shell, not variables set by tcsh, are available 注释,对吧?

答案 1 :(得分:2)

如果我理解你的问题,我认为使用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);

答案 2 :(得分:0)

特定于junit用于创建临时文件?链接到java.io.File的API createTempFile静态方法,它接受目录和前缀后缀http://docs.oracle.com/javase/7/docs/api/java/io/File.html#createTempFile(java.lang.String,%20java.lang.String,%20java.io.File)