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…...
保姆级教程:用Clawdbot将私有化Qwen3-VL接入飞书,打造企业智能助手
保姆级教程:用Clawdbot将私有化Qwen3-VL接入飞书,打造企业智能助手 1. 准备工作与环境确认 1.1 硬件环境检查 在开始前,请确保您的星图云实例满足以下最低配置要求: 组件最低要求推荐配置GPU显存24GB48GBCPU核心8核20核系统内…...
流处理 vs 批处理:大数据时代的技术选择指南
流处理 vs 批处理:大数据时代的技术选择指南 关键词:流处理、批处理、大数据、实时计算、离线计算、延迟、吞吐量 摘要:在大数据时代,数据处理就像一场永不停歇的"数据马拉松"。流处理和批处理是两种最核心的技术方案&a…...
031. 从零到一:打造你的专属“王思鱼指纹浏览器”实战指南
1. 什么是“王思鱼指纹浏览器”? 最近在帮朋友做社交媒体运营时,发现一个头疼的问题:同一个IP登录多个账号容易被平台识别关联。试过各种方法都不太理想,直到发现了这个叫“王思鱼指纹浏览器”的神器。简单来说,它就是…...
【CTF实战解析】ACTF2020新生赛Exec:从PING功能到命令注入的完整攻击链
1. 从PING功能到命令注入的漏洞挖掘 第一次看到这个ACTF2020新生赛的Exec题目时,我差点以为就是个简单的网络测试题。毕竟页面上只有一个PING功能的输入框,看起来人畜无害。但作为一个老CTF选手,我深知越是简单的界面,越可能暗藏玄…...
窗口置顶技术突破:AlwaysOnTop重构多任务处理逻辑
窗口置顶技术突破:AlwaysOnTop重构多任务处理逻辑 【免费下载链接】AlwaysOnTop Make a Windows application always run on top 项目地址: https://gitcode.com/gh_mirrors/al/AlwaysOnTop 在数字化工作环境中,窗口管理效率直接影响任务处理速度…...
除了当图床,Cloudflare R2的S3 API还能这么玩?Python脚本批量管理文件实战
解锁Cloudflare R2的S3 API潜能:Python自动化文件管理实战 Cloudflare R2作为兼容S3 API的对象存储服务,其应用场景远不止搭建图床这么简单。对于开发者而言,R2提供的S3兼容接口意味着可以将其无缝集成到各种自动化工作流中。本文将带你探索如…...
Ozon买家纠纷如何高效解决?借CaptainAI轻松化解!
做Ozon跨境电商,卖家最头疼的是买家纠纷,如买家质疑商品与描述不符、物流延迟投诉、退货商品状态分歧等。Ozon平台有纠纷处理时限,买家不满解决方案可在5个日历日内发起纠纷,平台3天审核裁决,卖家准备不足、响应不及时…...
颗粒结构:基础但容易被忽视
在COMSOL中二氧化碳电化学还原过程中不同催化剂结构对离子传输的影响的模拟分析搞电化学的小伙伴们都知道,催化剂长得像撒了把芝麻似的颗粒结构最省事。但在COMSOL里建模时千万别直接右键画球体——试试这个骚操作:model.geom("geom1").featur…...
AIGlasses_for_navigation视频分割教程:上传→处理→下载→验证全流程详解
AIGlasses_for_navigation视频分割教程:上传→处理→下载→验证全流程详解 你是不是遇到过这样的场景:手里有一段视频,想快速找出里面的特定物体,比如盲道、斑马线,或者红绿灯?手动一帧一帧看,…...
如何使用Audacity:免费音频编辑与录制全攻略
如何使用Audacity:免费音频编辑与录制全攻略 【免费下载链接】audacity Audio Editor 项目地址: https://gitcode.com/GitHub_Trending/au/audacity Audacity是一款免费开源的音频编辑与录制软件,支持多轨录音、音频剪辑、效果处理等专业功能&am…...
