简介:
File名字会误导人,它不是文件而文件和目录路径名的抽象表现形式,该类可以用来删除文件或目录、测试文件或目录是否存在、返回此抽象路径名父目录的路径名字符串、对指定目录下文件名的遍历(包括子目录,要用到递归)等等,总之此类只涉及文件(空壳子)不涉及文件内容。
具体:
构造方法
示例(注意生成的File对象是“路径”并不代表生成了对应的文件或目录,要想生成要用到mkdirs()和createNewFile()):
public static void main(String[] args) {
// TODO Auto-generated method stub
// 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
File f1 = new File("D:\\javafile");
System.out.println(f1.exists());
// 根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
File f2 = new File("D:\\学习文件", "1.txt");
// 根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
File f3 = new File("c:" + File.separator + "abc");// separator 跨平台分隔符
File f4 = new File(f3, "3.txt");
System.out.println(f1);// D:\javafile
}
常用方法
删除:
示例代码:
File f1 = new File("D:\\javafile");
System.out.println(f1.exists());
if (!f1.exists()) {
try {
// 当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。
f1.createNewFile();
System.out.println(f1.exists());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else f1.delete();
获取方法
1.String getName()
2.String getPath()
3.String getAbsolutePath()
4.String getParent()//如果没有父目录返回null
5.long lastModified()//获取最后一次修改的时间
6.long length()
7.boolean renameTo(File f)
8.File[] liseRoots()//获取机器盘符
File f1 = new File("D:\\javafile");
System.out.println(f1.exists());
System.out.println(f1.getName());// javafile
System.out.println(f1.getParentFile());// D:\
System.out.println(f1.getPath());// D:\javafile
Date dt = new Date(f1.lastModified());// 要转换为date类型
System.out.println(dt);// Mon May 02 11:35:18 CST 2016
System.out.println(f1.length());
File f2 = new File("D:\\javaio");
System.out.println(f1.renameTo(f2) + "...............");
列出磁盘下的文件和文件夹
File[] files =File.listRoots();
for(File file:files){
System.out.println(file);
if(file.length()>0){
String[] filenames =file.list();
for(String filename:filenames){
System.out.println(filename);
}
}
}
文件过滤
File[] files = File.listRoots();
for (File file : files) {
System.out.println(file);
if (file.length() > 0) {
String[] filenames = file.list(new FilenameFilter() {
// file 过滤目录 name 文件名
public boolean accept(File file, String filename) {
return filename.endsWith(".mp3");
}
});
for (String filename : filenames) {
System.out.println(filename);
}
}
}
移动文件
File f1 = new File("d:\\");
moveFile(f1);
}
public static void moveFile(File dir){
File[] files=dir.listFiles();
for(File file:files){
if(file.isDirectory())
moveFile(file);
else{
if(file.getName().endsWith(".java"))
file.renameTo(new File("c:\\jad\\"+
file.getName().substring(0,file.getName().lastIndexOf('.'))+".jad"));
}
}
利用递归列出全部文件
File f =new File("e:\\音樂");
showDir(f);
}
public static void showDir(File dir){
System.out.println(dir);
File[] files =dir.listFiles();
for(File file:files){
if(file.isDirectory())
showDir(file);
else
System.out.println(file);
}
}