首先我们大概的了解一下File类
File 类有一个欺骗性的名字——通常会认为它对付的是一个文件,但实情并非如此。它既代表一个特定文件
的名字,也代表目录内一系列文件的名字。若代表一个文件集,便可用list()方法查询这个集,返回的是一
个字串数组。之所以要返回一个数组,而非某个灵活的集合类,是因为元素的数量是固定的。而且若想得到
一个不同的目录列表,只需创建一个不同的File 对象即可。事实上,“FilePath”(文件路径)似乎是一个
更好的名字。
下面递归获取文件绝对路径:
import java.io.File;
/**
* 输出子孙目录 文件的名称(绝对路径)
* 1、listFiles()
* 2、递归
* @author songhaibo
*/
public class AbsolutePath {
public static void main(String[] args) {
String path="E:/src/text";
File src=new File(path);
printName(src);
File[] root=File.listRoots();//获取根节点C:D:E:...
for (File f:root){
printName(f);
}
}
/**
* 输出路径
*/
public static void printName(File src){
if(src==null||!src.exists()){
return ;
}
System.out.println(src.getAbsolutePath());//绝对路径名字符串
if(src.isDirectory()){
for (File f:src.listFiles()){//遍历所有文件目录的绝对路径
printName(f);
}
}
}
}
isFile()、exists()和isDirectory()三者的区别:
isFile():测试此抽象路径名表示的文件是否标准文件。
exists():测试此抽象路径名表示的文件或目录是否存在。
isDirectory():测试此抽象路径名表示的文件是否是一个目录。