在Java中以任何方式创建没有父文件夹和父文件的父文件夹的文件
这是要创建的文件的完整路径。D:\test3\ts435\te\util.log
此路径中没有任何文件夹,这意味着D:\下没有任何内容。
在Java中,当我创建此文件时
File testFile=new File(filePath);
testFile.createNewFile();
它说找不到路径。然后,我尝试创建父文件夹“ te”。然后它再次失败,表示找不到父文件夹“ ts435”。
有什么办法可以强制创建文件吗?要创建带有或不带有其父级的文件,并且存在上级文件夹。
更新2019-06-28:
大家好,我终于找到原因了。有两种方法,mkdir()和mkdirs()。如果目标文件夹的父文件夹不存在,则mkdir()将返回false,因为它无法强制构建整个文件夹结构。
但是, mkdirs() 可以做到这一点。无论父文件夹是否存在,它都可以构建整个文件夹链。
答案 0 :(得分:6)
您可以使用此方法File#mkdirs()
确保父目录存在。
File f = new File("D:\\test3\\ts435\\te\\util.log");
f.getParentFile().mkdirs();
// ...
如果父目录不存在,它将创建它们。
答案 1 :(得分:0)
File testFile=new File("D:\\test3\\ts435\\te\\util.log");
if(! testFile.getParentFile().exists()) {
testFile.getParentFile().mkdirs();
}
testFile.createNewFile();
答案 2 :(得分:0)
您可以使用以下方法一起创建文件和目录。
public static String createFile(String filePath, String fileName) throws BotServiceException {
File directory = new File(filePath);
if (!directory.exists() && !directory.mkdirs()) {
throw new Exception("Directory does not exist and could not be created");
}
File newFile = new File(filePath+ File.separator + fileName);
boolean isSuccess = newFile.createNewFile();
return newFile.getAbsolutePath();
}