假设文件大小一样就表示文件一模一样,是重复文件

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.IO;
namespace EnhanceImage
{ public partial class FindSamePicWind : Window
{
public FindSamePicWind()
{
InitializeComponent();
List<FileInfo> find = new List<FileInfo>();
//d:\Downloads
string path = @"d:\Downloads";
var files = Directory.GetFiles(path, "*.jpg");
var list = new List<FileInfo>();
foreach (var f in files)
{
FileInfo fi = new FileInfo(f);
list.Add(fi);
}
foreach (var f in list)
{ var all = list.Where(n => n.Length == f.Length);
if (all.Count() > 1)
{
foreach (var item in all)
{
if (!find.Contains(item))
{
find.Add(item);
Console.WriteLine(f.FullName);
var img = new Image() { ToolTip=f.Name, Tag = f.FullName, MaxWidth = 200, Source = LoadImage(f.FullName) };
img.MouseLeftButtonDown += Img_MouseLeftButtonDown;
wrapPanel.Children.Add( img );
}
}
} } } private void Img_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
var f = "" + (sender as Image).Tag;
File.Delete(f); wrapPanel.Children.Remove((sender as Image)); } BitmapImage LoadImage(string f) { BitmapImage bmp = new BitmapImage();
bmp.BeginInit();
bmp.CacheOption = BitmapCacheOption.OnLoad;
using(MemoryStream ms=new MemoryStream(File.ReadAllBytes(f)))
{
ms.Position = 0;
bmp.StreamSource = ms;// new Uri(f,UriKind.RelativeOrAbsolute); bmp.EndInit();
bmp.Freeze();
} return bmp;
} }
}

  

XAML:

<Window x:Class="EnhanceImage.FindSamePicWind"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:EnhanceImage"
mc:Ignorable="d"
Title="FindSamePicWind" Height="450" Width="800">
<Grid>
<RichTextBox AcceptsReturn="True" x:Name="txt"></RichTextBox>
<ScrollViewer VerticalScrollBarVisibility="Auto">
<WrapPanel Name="wrapPanel"></WrapPanel>
</ScrollViewer> </Grid>
</Window>

  

WPF 查找大小相同文件/图片的更多相关文章

  1. JQuery获取图片大小并控制图片文件上传大小以及上图片文件时如何预览图片

    首先我们来看效果图: 点击上传之后如下: 在这里我获取到文件的大小,并且如果超出我设定的大小,则禁止上传! 不多说,上代码:先看div布局: <div class="imageCont ...

  2. 总结:WPF中ResourceDictionary资源文件的查找和遍历方法

    原文:总结:WPF中ResourceDictionary资源文件的查找和遍历方法 一.查找包含制定关键字的资源 ResourceDictionary GetThemeDictionary()     ...

  3. C# WPF Application 下的文件操作

    好气哦,电脑好烂,每天花大把的时间在等电脑反应上. 没有钱买新电脑,连组台式机的钱都没有.好气哦. 啊啊啊啊文件操作是什么鬼???C++下我都懵了,C#下好多东西要学!!!我不会!我不会!我不会!!! ...

  4. WPF中查看PDF文件

    需要打开PDF文件时,我们第一印象就是使用Adobe Reader.在开发中,经常会遇到需要展示PDF文件的需求.我们会借助于Adobe Reader的Active控件来实现.不过这需要客户的机器上安 ...

  5. 【转】使用 lsof 查找打开的文件

      在 UNIX® 环境中,文件无处不在,这便产生了一句格言:“任何事物都是文件”.通过文件不仅仅可以访问常规数据,通常还可以访问网络连接和硬件.在有些情况下,当您使用 ls 请求目录清单时,将出现相 ...

  6. 文本内容查找grep、文件查找find、正则匹配

    一.文本内容查找工具 grep grep   egrep (文本过滤)   fgrep (不支持正则) 对文本的内容按照指定的匹配模式基于行来进行筛选 格式     grep [选项] 模式 文件 选 ...

  7. WPF GDI+字符串绘制成图片(一)

    原文:WPF GDI+字符串绘制成图片(一) 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/BYH371256/article/details/83 ...

  8. WebUploader文件图片上传插件的使用

    最近在项目中用到了百度的文件图片上传插件WebUploader.分享给大家 需要在http://fex.baidu.com/webuploader/download.html点击打开链接下载WebUp ...

  9. linux生成指定大小的文件(转)

    # dd if=/dev/zero of=50M.file bs=1M count=50在当前目录下生成一个50M的文件 虚拟块设备文件更通用的名称是硬盘镜像文件(Hard Disk Image),但 ...

  10. linux shell 脚本 历史文件清理脚本,按天,按月,清理前N天的历史文件,删除指定大小历史文件,历史文件归档清理

    不知道大家那有没有要清理的这个事情.需要清理目录历史文件.可能后续也会有很多其他地方需要清理历史文件,可能会用到. 我这两天空闲写了个脚本,清理比较方便,有要进行清理的大量历史文件的话可以用. 脚本用 ...

随机推荐

  1. 推荐一个 ASP.NET Core 的轻量级插件框架

    前言 本文将介绍一个专为ASP.NET Core设计的轻量级插件框架--PluginCore,该框架不仅能够简化插件的开发与集成,还能大幅提高开发效率. 另外,还将简要介绍相关的前端技术和SDK支持, ...

  2. [离线计算-Spark|Hive] 大数据应用性能指标采集工具改造落地

    背景 主要介绍针对平台的spark应用程序,在不修改用户程序的情况下 如何采集其资源和性能指标为后续分析使用,如性能优化,资源使用计价等. 分析挑战 在应用程序级别关联大量进程的指标 在分布式环境中, ...

  3. 终于注册成功了 Web of Science 账号

    地址: https://www.webofscience.com/wos/op/publications/add 个人主页: https://www.webofscience.com/wos/auth ...

  4. ABC240Ex Sequence of Substrings

    ABC240Ex Sequence of Substrings LIS 的好题改编. 约定 \(S(l,r)\) 为字符串 \(s\) 中第 \(l\) 位到底 \(r\)​ 位. \(S(l,r)& ...

  5. 连接数据库报错的异常可以用mysqli_report来捕获

    有时候数据库密码改了或者数据库删了,就会有一个mysqli的链接报错,是因为直接使用了类似代码 $connection = new mysqli('127.0.0.1', 'test_user', ' ...

  6. Personal Wiki

    What is a PersonalWiki? It's like WardsWiki, but it's yours. It can be: a free-form database a Perso ...

  7. Collections Framework中的算法(之二)

    从本篇开始我们讲述Collections中的一些算法的源代码!本篇主要讲述与排序相关的一些方法,如:排序.反序.反序比较器.乱序.最大值和最小值等. 一.头及一些与算法相关的属性 package ja ...

  8. HarmonyOS Next 入门实战 - 导航框架:HMRouter

    基础知识 目前官方推荐的最佳解决方案,是官方对于Navigation导航组件的封装,使用更简单便捷.如果熟悉Navigation的话,使用起来很快上手. 首先先集成HMRouter模块 使用命令行安装 ...

  9. Python 学习记录(2)

    NumPy数组规整 对数组进行各种变化 转换数组形状 import numpy as np a=np.arange(1,6+1) b=np.reshape(a,(2,3)) print(a) prin ...

  10. uniapp 样式篇

    1.全局变量 项目根目录的 uni.scss 文件是uni-app内置的常用样式变量,这个文件会自动引入,开发者可直接引用这个变了 文件默认已经定义了常用的变量,开发者也可以在此基础上继续添加 /* ...