当我使用以下代码时,即使\ scrshot \ vb在D驱动器中不存在,它也会创建\ scrshot \ vb \ uv。
takeScreenshot("D:\\scrshot\\vb\\uv", "s.png");
public void takeScreenshot(String fileDir,String fileName)
{
File directory=new File(fileDir);
if(!directory.exists())
directory.mkdir();
File file=((TakesScreenshot)ddr).getScreenshotAs(OutputType.FILE);
try {
FileUtils.copyFile(file,new File(directory.getAbsolutePath()+File.separator+fileName));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
如果我的理解正确,那么mkdir()不会创建父文件夹(如果不存在)。但是在这里,它在D盘下创建\ scrshot \ vb \。 thread供参考。
答案 0 :(得分:3)
我假设您正在使用Apache Commons FileUtil
。 documentation明确指出,如果目标文件不存在,则将创建该目录:
此方法将指定源文件的内容复制到 指定的目标文件。 存放目标文件的目录 如果不存在则创建该文件。如果目标文件存在,则 此方法将覆盖它。
答案 1 :(得分:0)
mkdir()从不创建父目录
但在您的代码中
FileUtils.copyFile(file,new File(directory.getAbsolutePath()+File.separator+fileName));
此行负责创建目录。