-
概念:代表物理磁盘中的一个文件或者文件夹
-
方法:
- createNewFile() //创建一个新文件
- mkdir() //创建一个新目录
- delete() //删除文件或空目录
- exists() //判断File对象所代表的对象是否存在
- getAbsolutePath() //获取文件的绝对路径
- getName() //取得名字
- getParent() //获取文件/目录所在的目录
- isDirectory() //是否是目录
- isFile() //是否是文件
- length() //获得文件的长度
- listFiles() //列出目录中的所有内容
- renameTo() //修改文件名为
例1:分隔符
System.out.print("路径分隔符" + File.pathSeparator); //路径分隔符; System.out.print("名称分隔符" + File.separator); //名称分隔符\
例2:文件操作
//创建文件,抛出异常 File file = new File("D:\\file.txt"); if(!file.exists()){ //判断文件是否存在 file.createNewFile(); } //删除文件 //直接删除 file.delete(); //使用jvm退出时删除 file.deleteOnExit(); Thread.sleep(5000); //获取文件信息 file.getAbsolutePath(); //获取绝对路径 file.getPath(); //获取相对路径 file.getName(); //获取文件名 file.getParent(); //获取父目录 file.length(); //获取文件长度 new Date(file.lastModified()).toLocaleString(); //获取创建时间 //判断 file.canWrite(); //是否可写 file.isFile(); //是不是文件 file.isHidden(); //是否隐藏
例3:文件夹操作
//创建文件夹,抛出异常 File dir = new File("d:\\aaa\\bbb\\ccc"); if(!dir.exists()){ //dir.mkdir(); //只能创建单级目录 dir.mkdirs(); //创建多级目录 } //删除文件夹 //直接删除 dir.delete(); //只删除最底层的单级目录(ccc),且必须是空目录 //使用jvm删除 dir.deleteOnExit(); Thread.sleep(5000); //获取文件夹信息 dir.getAbsolutePath(); //获取绝对路径 dir.getPath(); //获取路径 dir.getName(); //获取对底层文件夹名称(ccc) dir.getParent(); //获取父目录(bbb) new Date(dir.lastModified()).toLocaleString(); //获取创建时间 //判断 dir.isDirectory(); //是否是文件夹 dir.isHidden(); //是否隐藏 //遍历文件夹 String[] files = dir.list(); for(String s : files){ System.out.println(s); }
-
FileFilter接口
- public interface FileFilter
- boolean accept(File pathname)
- 当调用File类中的listFiles()方法时,支持传入FileFilter接口接口实现类,对获取文件进行过滤,只有满足条件的文件才可以出现在listFiles()的返回值中
//只输出.jpg结尾的文件 File dir = new File("d:\\图片"); File[] files = dir.listFiles(new FileFilter(){ @Override public boolean accept(File pathname){ if(pathname.getName().endsWith(".jpg")){ return true; } return false; } }); for(File file : files){ System.out.println(file.getName()); }
- public interface FileFilter
例1:递归遍历文件夹
public void listDir(File dir){
File[] files = dir.listFiles();
if(files != null && files.length > 0){
for(File file :files){
if(files.isDirectory()){
listDir(file); //递归
}else{
System.out.println(file.getAbsolutePath());
}
}
}
}
例2:递归删除文件夹
public void deleteDir(File dir){
File[] files = dir.listFiles();
if(files != null && files.length > 0){
for(File file :files){
if(files.isDirectory()){
deleteDir(file); //递归
}else{
//删除文件
System.out.println(file.getAbsolutePath()+"删除"+file.delete());
}
}
}
System.out.println(dir.getAbsolutePath()+"删除"+dir.delete());
}