Java创建目录和子目录(如果不存在)
假设我想创建generatedAnswers
目录,其中包含另一个目录dirName
,它是我输入的字符串变量
然后我想在目录`generatedAnswers/dirName'中插入fileName
,这样文件就会按照以下结构落入dirName目录中:
/ generatedAnswers
/dirName
fileName.txt
我尝试了以下代码,但不起作用:
File file = new File("generatedQuestions/"+dirName+"/");
file.getParentFile().mkdirs();
PrintWriter writer = new PrintWriter(file+fileName+".txt");
我得到的结果是: /生成答案 肮脏的名字。txt(已转换为文件名)
我做错了什么
# 1 楼答案
我认为你可以使用以下代码:
我添加文件。getAbsolutePath(),因为您尝试获取文件路径
# 2 楼答案
你做错的是这一行代码:
file
路径是generatedQuestions/dirName
,所以file.getParentFile()
返回generatedQuestions
,然后调用mkdirs()
,因此只创建目录generatedQuestions
,而不是子目录dirName
。移除getParentFile()
,即请注意
mkdirs()
可能会失败,在这种情况下,它将返回false。您应该检查返回值,而不是假设它总是成功的最后,
PrintWriter
构造函数的参数也是错误的。类java.io.File
的toString()
方法不打印尾随分隔符,因此需要添加它,即以下代码适用于我
或者,您可以像这样使用接口Path和类Files的组合
# 3 楼答案
试着这样做: