转自 http://blog.csdn.net/caidie_huang/article/details/52728401

1.获取File路径和检测状态:
1)操作File路径和名称:
File getAbsoluteFile() :获取绝对路径
String getAbsolutePath():获取绝对路径
String getPath() :获取文件路径
String getName() :获取文件名称
File getParentFile():获取上级目录文件
String getParent() :获取上级目录路径

2)检测File状态的方法:
boolean canExecute() :判断是否是可执行文件
boolean canRead() :判断该文件是否可读
boolean canWrite():判断该文件是否可写
boolean isHidden():判断该文件是否是隐藏文件
long lastModified():判断该文件的最后修改时间
long length():获取该文件的长度大小(单位字节)

2.File类中方法-
1)文件操作:
boolean isFile() :是否是文件
boolean createNewFile() :创建新的文件
static File createTempFile(String prefix, String suffix) :创建临时文件
boolean delete() :删除文件
void deleteOnExit() :在JVM停止时删除文件
boolean exists():判断文件是否存在
boolean renameTo(File dest) :重新修改名称

2)目录操作
boolean isDirectory() :判断是否是目录
boolean mkdir() :创建当前目录
boolean mkdirs() :创建当前目录和上级目录
String[] list() :列出所有的文件名
File[] listFiles() :列出所有文件对象
static File[] listRoots() :列出系统盘符

需求:
列出指定目录中所有的文件,包括子文件夹中的所有文件
关键方法:File[] listFiles()

public class ListFilesDemo {  

    //需求:列出指定目录中所有的文件,包括子文件夹中的所有文件(使用递归算法(recursion)).  
    public static void main(String[] args) {  
        File dir = new File("E:/Program Files");  
        listAllFile(dir);  
    }  

    private static void listAllFile(File f) {  
        //第一级子文件  
        File[] fs = f.listFiles();  
        for (File file : fs) {  
            //打印目录和文件  
            System.out.println(file);  
            //如果子文件是目录,则继续递归  
            if(file.isDirectory()){  
                listAllFile(file);  
            }  
        }  

    }  
}  

需求:过滤掉不是.avi结尾的文件
关键类:文件过滤器(FilenameFilter)

public class FilenameFilterDemo {  
    public static void main(String[] args) {  
        File dir = new File("E:/Program Files/视频");  
        File[] fs = dir.listFiles(new FilenameFilter() {  

            @Override  
            public boolean accept(File dir, String name) {  
                //过滤条件:是文件(可过滤掉以.avi结尾的文件夹)、文件以.avi结尾(即满足条件则不过滤)  
                return new File(dir,name).isFile() && name.endsWith(".avi");  
            }  
        });  

        for (File file : fs) {  
            System.out.println(file);  
        }  
    }  

}