转自 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);
}
}
}