java 扫描用户指定路径下的所有文件,先输出文件总数、占用空间总量,然后将所有文件的完整路径、文件大小以JSON数据格式写入到用户指定路径下的txt文件中,最后输出执行时间
时间: 2024-05-09 16:21:49 浏览: 215
Java获得某个路径下的所有文件列表,并写入指定文件
4星 · 用户满意度95%
您好,我是ChitGPT。很高兴为您解答问题!
以下是Java扫描用户指定路径下的所有文件,输出文件总数、占用空间总量,将所有文件的完整路径、文件大小以JSON数据格式写入到用户指定路径下的txt文件中,最后输出执行时间的示例代码:
```java
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
public class ScanFiles {
public static void main(String[] args) {
long startTime = System.currentTimeMillis(); // 记录开始时间
String basePath = "D:\\example\\"; // 指定路径
File baseDir = new File(basePath);
if (!baseDir.isDirectory()) { // 判断路径是否为文件夹
System.out.println("路径无效!");
return;
}
long totalSize = 0;
int totalNum = 0;
List<String> fileNames = new ArrayList<>();
List<Long> fileSizes = new ArrayList<>();
File[] files = baseDir.listFiles(); // 获取文件列表
for (File file : files) {
if (file.isFile()) { // 只计算文件,不包括子文件夹
totalSize += file.length(); // 计算总空间
totalNum++; // 计算文件总数
fileNames.add(file.getAbsolutePath()); // 添加文件路径到列表
fileSizes.add(file.length()); // 添加文件大小到列表
}
}
JSONObject jsonObj = new JSONObject();
try {
jsonObj.put("fileNames", new JSONArray(fileNames)); // 文件路径列表
jsonObj.put("fileSizes", new JSONArray(fileSizes)); // 文件大小列表
} catch (JSONException e1) {
e1.printStackTrace();
}
String jsonStr = jsonObj.toString(); // 将JSON对象转为字符串
File outFile = new File(basePath + "result.txt"); // 输出结果文件
try {
FileWriter writer = new FileWriter(outFile);
writer.write(jsonStr);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
long endTime = System.currentTimeMillis(); // 记录结束时间
long timeCost = endTime - startTime; // 计算执行时间
System.out.println("文件总数:" + totalNum);
System.out.println("占用空间总量:" + totalSize + "字节");
System.out.println("执行时间:" + timeCost + "毫秒");
}
}
```
如果您指定的路径下有子文件夹,上述代码只统计该路径下的所有文件,不包括子文件夹中的文件。如果需要统计所有文件,可以使用递归方法处理子文件夹。
如上代码中的JSON数据格式为:
```json
{
"fileNames": [
"D:\\example\\file1.txt",
"D:\\example\\file2.txt",
"D:\\example\\file3.txt"
],
"fileSizes": [
1024,
2048,
3072
]
}
```
该JSON数据中的"fileNames"项为文件路径列表,"fileSizes"项为文件大小列表。您可以根据需要替换为其他JSON数据格式。
阅读全文