使用 java.io.file 创建文件(文件夹),算是 java 最基础的知识,但实战项目中还是需要知晓细节。
比如 File 类中的 mkdir() 和 mkdirs() 的区别。
JDK API 中描述:
来段代码会看的更清楚:
File file1 = new File("F:/AAA/BBB/CCC"); if (file1.mkdirs()) { System.out.println("多级层文件夹创建成功!创建后的文件目录为:" + file1.getPath() + ",上级文件为:" + file1.getParent()); } File file2 = new File("F:/AAA/BBB/CCC/DDD"); if (file2.mkdir()) { System.out.println("单文件夹 DDD 创建成功!创建后的文件目录为:" + file2.getPath() + ",上级文件为:" + file2.getParent()); } File file3 = new File("F:/AAA/BBB/CCC/DDD","mytest.txt"); try { if (file3.createNewFile()) { System.out.println("多级层文件夹下文件创建成功!创建了的文件为:" + file3.getAbsolutePath() + ",上级文件为:" + file3.getParent()); } } catch (IOException e) { e.printStackTrace(); }
输出:
这样就很清楚了,mkdir() 创建单个文件夹,要确保它的上级文件夹存在。
mkdirs() 创建多个文件夹,并且不需要保证它的上级文件夹存在。
将文件输出到文件夹下要确保目标文件夹存在。
【附赠】递归删除整个文件夹(文件)方法:
/** * 删除某个文件夹下的所有文件夹和文件 * * @param delpath * @throws FileNotFoundException IOException * @return boolean */ public static boolean deletefile(String delpath) throws Exception { File file = new File(delpath); if (file.isDirectory()) { String[] filelist = file.list(); for (String delFile : filelist) { File delfile = new File(delpath + File.separator + delFile); if (delfile.isDirectory()) { deletefile(delpath + File.separator + delFile); } else System.out.println("正在删除文件:" + delfile.getPath() + ",删除是否成功:" + delfile.delete()); } System.out.println("正在删除空文件夹:" + file.getPath() + ",删除是否成功:" + file.delete()); } else System.out.println("正在删除文件:" + file.getPath() + ",删除是否成功:" + file.delete()); return true; }