package com.qf.day18_3; import java.io.File; import java.io.FilenameFilter; import java.io.IOException; import java.util.Date; /** * File类 * * @author wgy * */ public class Demo1 { public static void main(String[] args) throws Exception { // separator(); // fileConstructor(); //fileOpe(); //rename(); directoryOpe(); // rename2(); //listFiles(); } // 分隔符 public static void separator() { // 路径分隔符 System.out.println(File.pathSeparator); System.out.println(File.pathSeparatorChar); // 名称分隔符 System.out.println(File.separator); System.out.println(File.separatorChar); } // File构造方法 public static void fileConstructor() { // 创建File对象 File myFile = new File("d:\\image\\haha.jpg"); File myFile2 = new File("d:\\image", "4.jpg"); File parent = new File("d:\\image"); File myFile3 = new File(parent, "4.jpg"); File myFile4 = new File(parent, "haha.jpg"); File myFile5 = new File("d:\\xxx\\yyy\\a.jpg"); System.out.println(myFile); System.out.println(myFile2); System.out.println(myFile5); } /** * 文件操作 创建 删除 判断 获取 重命名 */ public static void fileOpe() throws Exception { // 创建File对象 绝对路径 相对路径 File file = new File("d:\\a.txt"); // 1创建(如果文件不存在,则创建返回true,如果存在则不创建,返回false) boolean b = file.createNewFile(); System.out.println("创建文件" + b); // 2删除 // 2.1直接删除 boolean b2=file.delete(); // System.out.println("删除文件"+b2); // 2.2jvm删除 (没有直接删除,当jvm退出时删除) // file.deleteOnExit(); // Thread.sleep(5000); // 3判断 System.out.println("canExecute()" + file.canExecute());// 是否可执行 System.out.println("canRead()" + file.canRead());// 是否可读 System.out.println("canWrite()" + file.canWrite());// 是否可写 System.out.println("exists()" + file.exists());// 是否存在 System.out.println("isAbsolute()" + file.isAbsolute());// 是否是绝对路径 System.out.println("isFile()" + file.isFile());// 是否是文件 System.out.println("isHidden()" + file.isHidden());// 是否是隐藏 // 4获取 System.out.println(file.getAbsolutePath()); // 获取绝对路径名 //字符串 System.out.println(file.getAbsoluteFile()); // 获取绝对文件名称 返回类型File System.out.println(file.getCanonicalPath());// 获取规范绝对路径名 System.out.println(file.getName()); // 获取文件名 System.out.println(file.getPath()); // 获取路径 System.out.println(new Date(file.lastModified()).toLocaleString());// 文件最后修改日期 System.out.println(file.length()); // 文件长度 } /** * 文件重命名 */ public static void rename(){ File file=new File("d:\\a.txt"); File newFile=new File("d:\\mywork\\b.txt"); file.renameTo(newFile);//修改名称 } /** * 文件夹操作 创建 删除 判断 获取 重命名 */ public static void directoryOpe(){ //创建File File dir=new File("d:\\xxx\\yyy\\zzz"); //1创建 //boolean b=dir.mkdir();//创建一级文件夹 boolean b2=dir.mkdirs();//创建多级文件夹 System.out.println(b2); //2删除 //2.1直接删除 (只能删除一级 ,只能是空目录) // boolean b3=dir.delete(); // System.out.println(b3); //2.2jvm删除 //dir.deleteOnExit(); //3判断 System.out.println("exists()"+dir.exists()); //是否存在 System.out.println("isAbsolute()"+dir.isAbsolute());//是否是绝对路径 System.out.println("isDirectory()"+dir.isDirectory());//是否是目录 System.out.println("isHidden()"+dir.isHidden());//是否是隐藏 //4获取 System.out.println("getAbsolutePath"+dir.getAbsolutePath()); //获取绝对路径 System.out.println("getName()"+dir.getName()); System.out.println("getPath()"+dir.getPath()); //System.out.println("lastModified"+dir.lastModified()); // } /** * 文件夹重命名 */ public static void rename2(){ File dir=new File("d:\\xxx\\yyy\\zzz"); File newDir=new File("d:\\xxx\\yyy\\hahah"); dir.renameTo(newDir); } /** * 列出文件夹下面的文件和子文件 */ public static void listFiles(){ //1列出所有的 File dir=new File("D:\\image"); // String[] files=dir.list(); // for (String string : files) { // System.out.println(string); // } //2过滤文件 String[] files2=dir.list(new FilenameFilter() { public boolean accept(File dir, String name) { // TODO Auto-generated method stub if(name.endsWith(".png")){ return true; } return false; } }); for (String string : files2) { System.out.println(string); } } }
File递归删除文件夹中的所有内容
import java.io.File; public class Demo4 { public static void main(String[] args) { // TODO Auto-generated method stub delDir(new File("d:\\xxx")); } public static void delDir(File dir){ File[] files = dir.listFiles(); if(files!=null){ for (File file : files) { if (file.isDirectory()) { delDir(file); }else { System.out.println(file.toString()+file.delete());//删除文件 } } System.out.println(dir.toString()+dir.delete());//删除目录 } } }
File类递归遍历文件夹
// level用来记录当前递归的层次 public static void listChilds(File f, int level) { // 生成有层次感的空格 StringBuffer sb = new StringBuffer("|--"); for (int i = 0; i < level; i++) { sb.insert(0, "| "); } File[] childs = f.listFiles(); // 递归出口 int length = childs == null ? 0 : childs.length; for (int i = 0; i < length; i++) { System.out.println(sb.toString() + childs[i].getName()); if(childs[i].isDirectory()){ listChilds(childs[i], level + 1); } } }
时间: 2024-10-24 14:08:21