145_IO_File_常用方法_文件夹操作
一、创建目录
1、public boolean mkdir() 创建此抽象路径名(必须保证这个父路径存在)指定的目录。当且仅当已创建目录时,返回 true
;否则返回 false
2、public boolean mkdirs() 创建此抽象路径名指定的目录树,包括所有必需但不存在的父目录。注意,此操作失败时也可能已经成功地创建了一部分必需的父目录。 当且仅当已创建目录以及所有必需的父目录时,返回 true
;否则返回 false
二、创建文件夹演示示例
package edu.aeon.io; import java.io.File; /** * [说明]:测试创建目录 * @author aeon * 1、mkdir 创建此抽象路径名(必须保证这个父路径存在)指定的目录。 * 2、mkdirs 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。注意,此操作失败时也可能已经成功地创建了一部分必需的父目录。 */ public class TestMkDir { public static void main(String[] args) { //注意:b:/test/这个父路径必须存在 且要创建的自身目录(此处为test)不存在时、mkdir()这个方法才能创建成功! String path="b:/test/test"; File file1=new File(path); boolean flag=file1.mkdir(); System.out.println("创建"+(flag?"成功!":"失败!")); //测试使用mkdirs()创建目录树、当目录层的所有文件夹存在时(包括要创建的自身目录,此处为p)则不继续创建 path="b:/test/test/test/test/test/test/p"; File file2=new File(path); flag=file2.mkdirs(); System.out.println("创建"+(flag?"成功!":"失败!")); } }
测试结果截图:
三、遍历所指定文件下所有目录和文件
比如此处我们遍历b盘test文件夹下有那些目录和文件
程序示例:
package edu.aeon.io; import java.io.File; import java.io.FilenameFilter; /** * [说明]:测试遍历指定目录下的子(孙)目录和子(孙)文件 * @author aeon */ public class TestMkDir { /** * [说明]:遍历指定path下的子目录和子文件(不包括孙级目录和文件) * @param path */ public static void test1(String path){ File file=new File(path); if(file.isDirectory()){ //如果是个文件夹、则遍历出该文件夹下的所有目录及文件 String subName[]=file.list(); for(String temp:subName){ System.out.println(temp); } } } /** * [说明]:遍历指定path下的子目录对象和子文件对象(不包括孙级目录和文件) * @param path */ public static void test2(String path){ File file=new File(path); if(file.isDirectory()){ File [] files=file.listFiles(); for(File f:files){ System.out.println(f.getAbsolutePath()); } } } /** * [说明]:筛选指定目录下的指定文件 * @param path */ public static void test3(String path){ File file=new File(path); if(file.isDirectory()){ File[] files=file.listFiles(new FilenameFilter() { @Override public boolean accept(File dir, String name) { //这里的dir就代表file这个对象有些文件夹也可以以.java后命名、此处要过滤掉 //如果这个是文件、且文件名以.java结束 return new File(dir,name).isFile()&&(name.endsWith(".java")||name.endsWith(".txt")); } }); for(File f:files){ System.out.println(f.getName()); } } } /** * 遍历所指定路径下的所有目录及文件(包括所有子孙级目录及文件) * @param path */ public static void test4(String path){ File file=new File(path); if(null==file||!file.exists()){ //如果文件不存在 return; } if(file.isDirectory()){ File[] files=file.listFiles(); for(File f:files){ test4(f.getAbsolutePath()); System.out.println(f.getAbsolutePath()); } } } public static void main(String[] args) { //遍历b盘test文件夹下有哪些子目录和子文件 String path="b:/test"; test1(path); System.out.println("=============="); test2(path); System.out.println("==============="); test3(path); System.out.println("================"); test4(path); } }
结果截图: