File操作
File.separator
:与系统有关的默认名称分割符
- Windows中是 \
- Unix中是 /
File.pathSeparatorChar
:与系统有关的路径分割符
- Windows中是 ;
- Unix中是 :
- 获取
- 获取文件绝对路径
file.getAbsolutePath();
- 获取文件大小
file.length();
- 获取文件最后修改时间
file.lastModified();
- 获取所有盘符 得到C:\ D:\ E:
File.listRoots();
- 获取磁盘空闲空间
file.getFreeSpace();
- 获取盘总空间
file.getTotalSpace();
- 获取目录下所有后缀名为.java的文件
String[] list = file.list(new FilenameFilter() { @Override public boolean accept(File dir, String name) { return name.endsWith(".java"); } });
- 获取文件绝对路径
- 增删
- 创建文件
file.createNewFile();
- 创建文件夹
file.mkdir();
- 删除文件
file.delete();
- 创建文件
深度遍历
获取指定目录下的所以文件夹或者文件
private static void listAll(File dir) {
System.out.println("dir"+dir);
File[] files = dir.listFiles();
for (File file : files) {
if(file.isDirectory())
listAll(file);
else {
System.out.println("file"+file);
}
}
}
递归
函数自身直接或者间接的调用到了自身
一个功能在被重复使用,并且每次使用时,参与运算的结果和上一次调用有关,这时可以使用递归。
注意:递归一定要明确条件,否则容易溢出。
具体用法见算法。
删除一个带内容的目录
private static void removeDir(File dir) {
File[] files = dir.listFiles();
for (File file : files) {
if(file.isDirectory()){
removeDir(file);
}else {
System.out.println(file+":"+file.delete());
}
}
System.out.println(dir+":"+dir.delete());
}