我遇到了以下问题:我想创建一个简单的目录结构,包含一个根文件夹,两个子文件夹,每个子文件夹应包含两个文件。我是如何做到的,什么不起作用:
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下创建文件而不是在我创建的树中。有什么想法吗?
答案 0 :(得分:4)
只需使用new File(child1, "some-file.txt")
:
child1
将创建一个名为" some-file.txt"的文件。在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)