Android编一段在指定目录下找到重复文件并将重复文件列表显示给用户看的代码
时间: 2023-12-21 13:04:11 浏览: 28
以下是一段 Java 代码,用于查找指定目录下的重复文件并显示给用户:
```
import java.io.*;
import java.security.*;
import java.util.*;
public class FindDuplicateFiles {
public static void main(String[] args) throws Exception {
if (args.length != 1) {
System.out.println("Usage: java FindDuplicateFiles <directory>");
System.exit(0);
}
File dir = new File(args[0]);
if (!dir.isDirectory()) {
System.out.println(args[0] + " is not a directory!");
System.exit(0);
}
Map<String, List<File>> map = new HashMap<String, List<File>>();
for (File file : dir.listFiles()) {
if (!file.isFile()) continue;
String hash = getHash(file);
List<File> list = map.get(hash);
if (list == null) {
list = new ArrayList<File>();
map.put(hash, list);
}
list.add(file);
}
for (Map.Entry<String, List<File>> entry : map.entrySet()) {
List<File> list = entry.getValue();
if (list.size() > 1) {
System.out.println("Duplicate files found:");
for (File file : list) {
System.out.println(file.getAbsolutePath());
}
System.out.println();
}
}
}
private static String getHash(File file) throws Exception {
MessageDigest md = MessageDigest.getInstance("MD5");
InputStream is = new FileInputStream(file);
byte[] buffer = new byte[8192];
int read;
try {
while ((read = is.read(buffer)) > 0) {
md.update(buffer, 0, read);
}
byte[] digest = md.digest();
String result = "";
for (byte b : digest) {
result += Integer.toHexString(b & 0xff);
}
return result;
} finally {
is.close();
}
}
}
```
使用方式如下:
```
java FindDuplicateFiles <directory>
```
其中 `<directory>` 是要查找重复文件的目录路径。执行后,程序会输出所有重复的文件路径。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)