C# 图标标注小工具-查看重复文件
目录
效果
项目
代码
下载
效果

项目

代码
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Windows.Forms;namespace ImageDuplicate
{public partial class Form1 : Form{public Form1(){InitializeComponent();}string FolderPath = "";List<ImgFileInfo> ltFile = new List<ImgFileInfo>();private void button1_Click(object sender, EventArgs e){FolderBrowserDialog dialog = new FolderBrowserDialog();if (dialog.ShowDialog(this) != DialogResult.OK){return;}textBox1.Text = "";FolderPath = "";ltFile.Clear();dataGridView1.DataSource = null;Application.DoEvents();button1.Enabled = false;button2.Enabled = false;FolderPath = dialog.SelectedPath + @"\";textBox1.Text = FolderPath;DirectoryInfo root = new DirectoryInfo(FolderPath);foreach (FileInfo f in root.GetFiles()){ltFile.Add(new ImgFileInfo(f.Name, GetFileMD5(FolderPath + f.Name)));}//var sortlist = ltFile.OrderBy(o => o.md5).ToList();var listGroup = ltFile.GroupBy(o => o.md5).Select(g => (new{md5 = g.Key,num = g.Count(),fileName = string.Join(",", g.Select(d => d.fileName))})).OrderByDescending(o => o.num).ThenBy(o => o.md5).ToList();dataGridView1.DataSource = listGroup;//自适应所有列的宽度//dataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);dataGridView1.Columns[0].Width = 300;dataGridView1.Columns[1].Width = 50;dataGridView1.Columns[2].Width = 850;button1.Enabled = true;button2.Enabled = true;}public static string GetFileMD5(string path){if (!System.IO.File.Exists(path)) return "";FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read);MD5CryptoServiceProvider md5Provider = new MD5CryptoServiceProvider();byte[] buffer = md5Provider.ComputeHash(fs);string resule = BitConverter.ToString(buffer);md5Provider.Clear();fs.Close();return resule;}/// <summary>/// 去重复/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void button2_Click(object sender, EventArgs e){}}
}
下载
源码下载
相关文章:
C# 图标标注小工具-查看重复文件
目录 效果 项目 代码 下载 效果 项目 代码 using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Security.Cryptography; using System.Windows.Forms;namespace ImageDuplicate {public partial clas…...
浅谈冯诺依曼体系和操作系统
🌎冯诺依曼体系结构 文章目录 冯诺依曼体系结构 认识冯诺依曼体系结构 硬件分类 各个硬件的简单认识 输入输出设备 中央处理器 存储器 关于内存 对冯诺依曼体系的理解 操作系统 操作系统…...
Good Bye 2023
Good Bye 2023 Good Bye 2023 A. 2023 题意:序列a中所有数的乘积应为2023,现在给出序列中的n个数,找到剩下的k个数并输出,报告不可能。 思路:把所有已知的数字乘起来,判断是否整除2023,不够…...
多开工具对手机应用响应速度的优化与改进
多开工具对手机应用响应速度的优化与改进 摘要: 如今,手机应用的多样化和个性化需求不断增长,用户对应用的响应速度要求也越来越高。为了满足用户的需求,开发者们使用了多种技术手段进行应用的优化和改进。其中,多开工…...
文件批量整理,文件归类整理,文件批量归类
我们每天都要面对无数的文件,从工作报告、个人照片到电影和音乐。如何有效地管理和归类这些文件,成为了我们日常生活和工作中所要处理的。今天,小编就给大家介绍一款简单易用的工具——文件批量改名高手,助你轻松实现文件批量归类…...
Python+Django+Mysql+SimpleUI搭建后端用户管理系统(非常详细,每一步都清晰,列举了里面所有使用的方法属性)
一、在Anaconda环境下创建虚拟环境 (1)打开Anaconda Prompt(install),创建虚拟环境,如下图所示: 方法一:默认情况下虚拟环境创建在Anaconda安装目录下的envs文件夹中 conda create --name usermanage …...
【Qt-QWidget-QLabel-QFrame-QSlider-View-Bar】
Qt编程指南 ■ Label■ QLabel■ QMovie 显示动画■ Widget■ QWidget■ QTabWidget■ QTableWidget■ QListWidget■ QStackedWidget■ QCalendarWidget■ QFrame■ QFrame■ View■ QT...
11|代理(上):ReAct框架,推理与行动的协同
11|代理(上):ReAct框架,推理与行动的协同 在之前介绍的思维链(CoT)中,我向你展示了 LLMs 执行推理轨迹的能力。在给出答案之前,大模型通过中间推理步骤(尤其…...
毫秒格式化
## 计算当前毫秒数: const [start,setStart] useState(new Date().getTime())useEffect(()>{setInterval(()>{setCurrMill(new Date().getTime()-start)},1)},[]) ## 格式化毫秒 function formatMilliseconds(milliseconds) {const totalSeconds Math.flo…...
pytorch与cuda版本对应关系汇总
pytorch与cuda版本关系 cuda版本支持pytorch版本cuda10.21.5 ~ 1.12cuda11.01.7 ~ 1.7.1cuda11.11.8 ~ 1.10.1cuda11.31.8.1 ~ 1.12.1cuda11.61.12.0 ~ 1.13.1cuda11.71.13.0 ~ 2.0.1cuda11.82.0.0 ~ 2.1.1cuda12.12.1.0 ~ 2.1.1 cuda 与 cudnn关系 cuda版本支持cudnn版本cu…...
Linux系统下隧道代理HTTP
在Linux系统下配置隧道代理HTTP是一个涉及网络技术的话题,主要目的是在客户端和服务器之间建立一个安全的通信通道。下面将详细解释如何进行配置。 一、了解基本概念 在开始之前,需要了解几个关键概念:代理服务器、隧道代理和HTTP协议。代理…...
unity学习笔记----游戏练习03
一、修复植物种植的问题 1.当手上存在植物时,再次点击卡片上的植物就会在手上添加新的植物,需要修改成只有手上没有植物时才能再次获取到植物。需要修改AddPlant方法。 public bool AddPlant(PlantType plantType) { //防止手上出现多个植…...
VistualStudio查看类图UML
点击菜单栏中的工具–》获取工具和功能。 然后在资源管理器中对应的代码中鼠标右键选择查看类图 生成一个ClassDiagram.cd文件就是类图的文件了。 根据需要拖拽就可以生成类图了。...
elasticsearch系列九:异地容灾-CCR跨集群复制
概述 起初只在部分业务中采用es存储数据,在主中心搭建了个集群,随着es在我们系统中的地位越来越重要,数据也越来越多,针对它的安全性问题也越发重要,那如何对es做异地容灾呢? 今天咱们就一起看下官方提供的…...
基于Java网上点餐系统设计与实现
博主介绍: ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到 Java项目精品实…...
公司电脑文件加密系统——防止内部核心文件数据 | 资料外泄,自动智能透明加密保护
一套从源头上保障企业电脑数据安全和电脑使用安全的加密软件。天锐绿盾加密软件包含了表格数据加密、图纸加密、文档文件加密、内网文件加密流转、密级管控、电脑离线管理、文件外发管理、灵活的审批流程、工作模式切换、服务器白名单等功能。天锐绿盾加密系统全面覆盖Mac、Win…...
计算机毕业设计------ssm茶叶溯源系统
项目介绍 茶叶溯源系统,分为前台与后台。普通用户可在前台通过18位的编码查询茶叶的出售历史。 后台分为两种角色,管理员与经销商; 管理员主要功能包括: 主界面; 管理员管理:管理员列表、添加管理员&am…...
【网络安全 | Misc】miss_01 太湖杯
解压时提示输入密码: 如果 frFlags 或 deFlags 不为0会导致zip的伪加密 将deFlags的值修改为0 将9改为0,另存为123.zip: 即可绕过加密: 得到一个zip一个docx,但zip需要密码: 因此看docx有无敏感信息&#x…...
【深度学习目标检测】十一、基于深度学习的电网绝缘子缺陷识别(python,目标检测,yolov8)
YOLOv8是一种物体检测算法,是YOLO系列算法的最新版本。 YOLO(You Only Look Once)是一种实时物体检测算法,其优势在于快速且准确的检测结果。YOLOv8在之前的版本基础上进行了一系列改进和优化,提高了检测速度和准确性。…...
《深入理解C++11:C++11新特性解析与应用》笔记六
第六章 提高性能及操作硬件的能力 6.1 常量表达式 6.1.1 运行时常量性与编译时常量性 大多数情况下,const描述的是运行时常量性,也即是运行时数据的不可更改性。但有时候我们需要的却是编译时的常量性,这是const关键字无法保证的。例如&am…...
Cisco Packet Tracer新手必看:5分钟搞定路由器静态路由配置(附避坑指南)
Cisco Packet Tracer静态路由配置实战:从零到精通的完整指南 刚接触网络工程的朋友们,第一次在Cisco Packet Tracer中配置静态路由时,是不是经常遇到"网络不通"的困扰?作为网络通信的基础技能,静态路由配置看…...
cv_resnet50_face-reconstruction效果对比:不同光照/姿态下人脸重建质量实测报告
cv_resnet50_face-reconstruction效果对比:不同光照/姿态下人脸重建质量实测报告 你是不是也好奇,一个基于ResNet50的人脸重建模型,到底能把一张照片还原到什么程度?它能不能处理好那些光线不好、角度刁钻的照片?今天…...
从桁架到螺栓:HM-3420在汽车后桥装配中的实战应用
HM-3420螺栓连接技术在汽车后桥装配中的创新实践 汽车后桥作为承载车身重量与传递动力的关键部件,其结构强度直接关系到整车安全性能。在传统装配工艺中,桁架连接往往面临应力集中、疲劳寿命不足等挑战。HM-3420螺栓连接系统的出现,为这一领域…...
药物发现必备:RDKit分子指纹在虚拟筛选中的7种高级用法
药物发现必备:RDKit分子指纹在虚拟筛选中的7种高级用法 在当今药物研发领域,虚拟筛选已成为加速药物发现流程的关键技术。面对海量化合物库,如何高效准确地识别潜在活性分子?RDKit分子指纹技术提供了强有力的解决方案。不同于基础…...
高效掌握Mermaid:从文本到可视化的实战指南
高效掌握Mermaid:从文本到可视化的实战指南 【免费下载链接】mermaid mermaid-js/mermaid: 是一个用于生成图表和流程图的 Markdown 渲染器,支持多种图表类型和丰富的样式。适合对 Markdown、图表和流程图以及想要使用 Markdown 绘制图表和流程图的开发者…...
05-OpenClaw 自动生成 PPT 实战:每天节省 3 小时
作者:程序员小明儿 字数:约 9000 字 阅读时间:约 25 分钟 难度:⭐⭐⭐ 中级 系列:OpenClaw 实战 16 例(第 5 篇) 前置条件:已完成 OpenClaw 环境部署和基础配置写在前面 你是不是也这…...
OpenClaw+GLM-4.7-Flash:自动化数据清洗与分析流程
OpenClawGLM-4.7-Flash:自动化数据清洗与分析流程 1. 为什么需要自动化数据流水线 作为一名数据分析师,我每天要处理大量原始数据。这些数据可能来自Excel表格、数据库导出或者网页抓取,格式混乱、缺失值多、重复记录频发。传统的手工清洗不…...
别再只会docker push了!Harbor镜像上传的5个隐藏技巧与实战避坑指南
Harbor镜像上传实战:5个高阶技巧与避坑指南 当你在凌晨三点被CI/CD流水线的失败通知惊醒,发现又是镜像上传问题导致整个发布流程卡住时,就会明白掌握Harbor的进阶用法有多重要。作为企业级容器镜像仓库,Harbor远比简单的docker pu…...
CTF信息收集入门:从BUUCTF‘粗心的小李’题目看Git泄露的常见利用方式
CTF信息收集实战:Git泄露漏洞的深度利用与防御策略 在CTF竞赛的Web安全赛道上,信息收集能力往往决定着解题的成败。当新手面对看似空白的网页时,常会陷入无从下手的困境——这正是"粗心的小李"这类题目的设计初衷。不同于常规的SQL…...
极简安装方案:树莓派部署OpenClaw轻量版对接云端Qwen3-32B
极简安装方案:树莓派部署OpenClaw轻量版对接云端Qwen3-32B 1. 为什么选择树莓派OpenClaw轻量版? 去年夏天,我突发奇想:能不能用树莓派做个24小时在线的AI管家?既能控制智能家居,又能处理简单办公任务。但…...
