File的list,listFile,listRoots方法

本文详细介绍了使用Java进行文件操作的方法,包括如何通过File类获取指定目录下的所有文件名及绝对路径,以及如何列出所有盘符。同时,文章还提到了递归调用的方式来获取子目录内容,为开发者提供了实用的代码示例。

File f = new File(“E:\\BaiduNetdiskDownload\\目录信息”);
String[] files = f.list();//返回目录下文件名
for (String file : files) {
System.out.println(file);
}
System.out.println("---------------------------");
File[] files2 = f.listFiles();//返回绝对路径文件名
for (File file : files2) {
System.out.println(file);
}
System.out.println("------------------");
File[] files3 = f.listRoots();//返回盘符
for (File file : files3) {
System.out.println(file);
}
注:如果想获取子目录的内容,可以选择进行递归调用的方式实现

获取File对象绝对路径有多种方法File对象有3种形式表示的路径,其中获取绝对路径可使用`getAbsolutePath()`方法,它能返回文件的绝对路径;还可使用`getCanonicalPath`方法,它绝对路径类似,不过返回的是规范路径[^1]。 以下是使用`getAbsolutePath()`方法的示例代码: ```java import java.io.File; public class GetAbsolutePathExample { public static void main(String[] args) { File file = new File("C:" + File.separator + "jdk11.0.2" + File.separator, "demo1.java"); String absolutePath = file.getAbsolutePath(); System.out.println(absolutePath); } } ``` 也可以通过递归的方式获取文件或目录下所有子孙文件的绝对路径,示例代码如下: ```java import java.io.File; 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(); 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); } } } } ``` 另外,还可以将获取的绝对路径存于列表中,示例代码如下: ```java import java.io.File; import java.util.ArrayList; import java.util.List; public class GetDirFilesUtil { public static List<String> getDirFiles(File file) { List<String> resultList = new ArrayList<>(); if (file.isDirectory()) { resultList.add(file.toString()); for (File inner : file.listFiles()) { resultList.addAll(getDirFiles(inner)); } } else { resultList.add(file.toString()); } return resultList; } public static void main(String[] args) { String inputPath = "."; File file = new File(inputPath); List<String> resultList = new ArrayList<>(); resultList = getDirFiles(file); for (String fileString : resultList) { System.out.println(fileString); } } } ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值