我正在使用JUnit的TemporaryFolder类规则在JUnit运行期间创建一个临时文件夹。

@Rule
public TemporaryFolder folder = new TemporaryFolder();

folder.newFolder("NewFolder");


新文件夹将在以下路径中创建:

C:\Users\abc\abc\Local\Temp\junit991415299992369999\NewFolder


我正在寻找要在根目录下创建的新文件夹,例如:

C:\NewFolder


如何实现对Windows和Linux都有利的目标?

我在下面尝试

folder.newFolder("\\", "NewFolder"); // Same result
folder.newFolder("C:\\", "NewFolder"); // results in java.io.IOException: a folder with the name 'NewFolder' already exists. (Even though there is no existing folder with this name)
folder.newFolder("./", "NewFolder"); // creates at C:\Users\abc\abc\Local\Temp\junit991415299992369999\.\NewFolder


谢谢!

最佳答案

您必须使用其他根目录创建TemporaryFolder。就像是

@Rule
public final TemporaryFolder folder = new TemporaryFolder(
    new File("C:\\")
);


没有在Windows上对其进行测试,但我认为您明白了。

09-25 18:25