编辑
2026-04-23
软件编程
0

目录

说明
代码
以下为文章正文

说明

控制台应用,启动后粘贴要处理的文件夹路径。获取文件夹内所有文件的列表,逐一进行MD5计算,没有记录的保存,发现MD5重复的时候删除此文件。

代码

c#
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; namespace MD5删除 { internal class Program { static void Main(string[] args) { Console.WriteLine("粘贴目标路径"); string pathinput = Console.ReadLine(); if (!Directory.Exists(pathinput + "\\output")) { Directory.CreateDirectory(pathinput + "\\output"); } string[] filenames = Directory.GetFiles(pathinput); Dictionary<string, string> md5list =new Dictionary<string, string>(); foreach (string filename in filenames) { string MD5code = GET_File_MD5(filename); if (md5list.ContainsKey(MD5code)) { File.Delete(filename); Console.WriteLine("删除"+ filename); } else { md5list.Add(MD5code, filename); Console.WriteLine("记录" + filename); } } } static private string GET_File_MD5(string path) { try { byte[] buffer = File.ReadAllBytes(path); ; System.Security.Cryptography.MD5 file1_md5 = MD5.Create(); byte[] retval = file1_md5.ComputeHash(buffer); StringBuilder sb = new StringBuilder(); for (int i = 0; i < retval.Length; i++) { sb.Append(retval[i].ToString("X2")); } return sb.ToString(); } catch (Exception ep) { Console.WriteLine(ep.Message); return ""; } } } }

以上为文章正文

本文作者:Kellermen

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!