java 扫描指定路径下所有文件,将文件完整路径、文件大小写入txt文件中并输出执行时间
时间: 2024-05-15 21:17:58 浏览: 13
您好,欢迎使用ChitGPT!对于您的问题,以下是一个Java程序实现,可以扫描指定路径下所有文件,将文件完整路径和文件大小写入txt文件,并输出执行时间:
```
import java.io.*;
import java.util.*;
public class FileScanner {
public static void main(String[] args) {
long startTime = System.currentTimeMillis(); // 记录开始时间
String path = "指定路径"; // 指定路径
File file = new File(path);
if (!file.exists() || !file.isDirectory()) { // 如果路径不存在或不是一个文件夹
System.out.println("目录不存在或不是一个文件夹!");
return;
}
File[] files = file.listFiles(); // 获取所有文件
if (files == null || files.length == 0) { // 如果文件夹为空
System.out.println("文件夹为空!");
return;
}
List<String> list = new ArrayList<String>(); // 存储完整路径和文件大小的信息
for (File child : files) {
if (child.isFile()) { // 如果是文件
long size = child.length(); // 获取文件大小
String info = child.getAbsolutePath() + "\t" + size; // 拼接完整路径和文件大小
list.add(info);
} else if (child.isDirectory()) { // 如果是文件夹
scan(child, list); // 递归扫描文件夹
}
}
File output = new File("output.txt"); // 输出文件路径
try (BufferedWriter bw = new BufferedWriter(new FileWriter(output))) {
for (String info : list) {
bw.write(info); // 写入文件
bw.newLine();
}
bw.flush();
} catch (IOException e) {
e.printStackTrace();
}
long endTime = System.currentTimeMillis(); // 记录结束时间
long duration = endTime - startTime; // 计算执行时间
System.out.println("扫描完毕,耗时:" + duration + "毫秒。");
}
public static void scan(File file, List<String> list) { // 递归扫描文件夹
File[] files = file.listFiles();
if (files == null || files.length == 0) {
return;
}
for (File child : files) {
if (child.isFile()) { // 如果是文件
long size = child.length(); // 获取文件大小
String info = child.getAbsolutePath() + "\t" + size; // 拼接完整路径和文件大小
list.add(info);
} else if (child.isDirectory()) { // 如果是文件夹
scan(child, list);
}
}
}
}
```
这段程序会从指定路径开始扫描所有文件,并将完整路径和文件大小记录在一个List中。然后将List中的信息写入到output.txt文件中。同时,程序会记录执行时间并输出。希望以上信息能够帮助到您,如果您还有其他问题,请继续向我提问。