文件夹操作
//文件夹操作
public static void main(String[] args) throws Exception {
directoryOpe();
}
public static void directoryOpe() throws Exception{
//1.创建文件夹
File dir = new File("d:\\aaa\\bbb\\ccc");
//判断不存在再创建
if (!dir.exists()){
//dir.mkdir();//这种方法只能创建单级目录,比如这个文件夹就创建不成功
System.out.println("创建文件夹是否成功:"+ dir.mkdirs());//可以创建多级目录,最好用这个,返回值依然是布尔值
}
//2.删除文件夹
//依然是两种方法,一种直接删除,一种jvm删除
//2.1直接删除(只能删除空目录)
System.out.println("删除结果"+ dir.delete());//这个方法只删除最底层目录即ccc目录
//2.2jvm删除
//dir.deleteOnExit();
//Thread.sleep(5000);
//3.获取文件夹信息
System.out.println("获取绝对路径:" +dir.getAbsoluteFile());
System.out.println("获取路径:" +dir.getPath());//即上面写的路径
System.out.println("获取文件夹名称:" +dir.getName());//最低级目录的名称 此例为“ccc”
//4.判断
//跟文件操作调用的方法差不多、
//5.遍历文件夹
File dir2 = new File("d:\\vkd");
for (String s : dir2.list()) {
System.out.println(s);
}
遍历结果:
coredns-initrd
crx-initrd
crx-podvm-initrd
kaniko-executor.tar.gz
lib-initrd
spherelet-initrd
vkd-initrd
vmlinuz-esx
遍历过滤(FileFilter接口):
File dir2 = new File("d:\\tools-upgraders");
System.out.println("=============遍历时FileFilter接口的使用============");
//FileFilter接口可以过滤遍历的内容,只遍历满足我们要求的需要的文件
File[] files = dir2.listFiles(new FileFilter() {
//通过匿名内部类实现,重写方法达到过滤目的
@Override
public boolean accept(File pathname) {
if (pathname.getName().endsWith(".exe")) {
return true;
}
return false;
}
});
for (File file:files
) {
System.out.println(file.getName());
}
}
结果(只会打印.exe):
=============遍历时FileFilter接口的使用============
VMwareToolsUpgrader.exe
VMwareToolsUpgrader9x.exe
VMwareToolsUpgraderNT.exe
注意事项:
- 创建目录最好使用mkdirs方法
- 使用直接删除方法时(delete)必须先删文件再删文件夹
- 遍历文件夹时直接dir.list()加上Alt+enter的快捷键即可
- dir.list()返回字符串数组,dir.listfiles()返回File类型数组