Skip to content

Commit 785917f

Browse files
committed
1、新增 MD5 的匹配方式
1 parent a05e362 commit 785917f

File tree

5 files changed

+23
-10
lines changed

5 files changed

+23
-10
lines changed

src/FindDuplicateFiles.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<Win32Resource />
1010
<Authors>九零</Authors>
1111
<Product>重复文件查找</Product>
12-
<Version>1.6.2</Version>
12+
<Version>1.7.0</Version>
1313
</PropertyGroup>
1414

1515
<ItemGroup>
@@ -202,8 +202,8 @@
202202
</ItemGroup>
203203

204204
<ItemGroup>
205-
<PackageReference Include="JiuLing.AutoUpgrade" Version="1.2.1" />
206-
<PackageReference Include="JiuLing.CommonLibs" Version="1.2.1" />
205+
<PackageReference Include="JiuLing.AutoUpgrade" Version="1.2.2" />
206+
<PackageReference Include="JiuLing.CommonLibs" Version="1.2.2" />
207207
</ItemGroup>
208208

209209
<ItemGroup>

src/MainWindow.xaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@
9393
<!-- 左侧功能面板 -->
9494
<Grid Grid.Column="0" >
9595
<Grid.RowDefinitions>
96-
<RowDefinition Height="100"></RowDefinition>
96+
<RowDefinition Height="120"></RowDefinition>
9797
<RowDefinition Height="200"></RowDefinition>
9898
<RowDefinition Height="240"></RowDefinition>
9999
<RowDefinition Height="50"></RowDefinition>
@@ -106,7 +106,8 @@
106106
<TextBlock FontWeight="Bold" Foreground="{DynamicResource FontForeground}" VerticalAlignment="Center">匹配方式</TextBlock>
107107
<CheckBox Name="ChkFileName" Foreground="{DynamicResource FontForeground}" Margin="0,2,0,5">文件名</CheckBox>
108108
<CheckBox Name="ChkFileSize" Foreground="{DynamicResource FontForeground}" Margin="0,0,0,5">文件大小</CheckBox>
109-
<CheckBox Name="ChkFileLastWriteTimeUtc" Foreground="{DynamicResource FontForeground}">文件修改时间</CheckBox>
109+
<CheckBox Name="ChkFileLastWriteTimeUtc" Foreground="{DynamicResource FontForeground}" Margin="0,0,0,5">文件修改时间</CheckBox>
110+
<CheckBox Name="ChkMD5" Foreground="{DynamicResource FontForeground}">MD5(速度慢,准确性高)</CheckBox>
110111
</StackPanel>
111112
</Border>
112113
</Grid>

src/MainWindow.xaml.cs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,10 @@ private void LoadingAppConfig()
6565
private void InitializeSearchCondition()
6666
{
6767
//匹配方式
68-
ChkFileName.IsChecked = true;
69-
ChkFileSize.IsChecked = true;
70-
ChkFileLastWriteTimeUtc.IsChecked = true;
68+
ChkFileName.IsChecked = false;
69+
ChkFileSize.IsChecked = false;
70+
ChkFileLastWriteTimeUtc.IsChecked = false;
71+
ChkMD5.IsChecked = true;
7172

7273
//选项
7374
ChkIgnoreEmptyFile.IsChecked = true;
@@ -227,6 +228,10 @@ private void BeginSearch()
227228
{
228229
searchMatch |= SearchMatchEnum.LastWriteTime;
229230
}
231+
if (ChkMD5.IsChecked == true)
232+
{
233+
searchMatch |= SearchMatchEnum.MD5;
234+
}
230235
if (searchMatch == 0)
231236
{
232237
MessageBox.Show("请选择匹配方式", "重复文件查找", MessageBoxButton.OK, MessageBoxImage.Stop);

src/Model/SearchConfigs.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ public enum SearchMatchEnum
1818
{
1919
Name = 1,
2020
Size = 2,
21-
LastWriteTime = 4
21+
LastWriteTime = 4,
22+
MD5 = 8,
2223
}
2324
/// <summary>
2425
/// 查找选项

src/SearchFile/CheckDuplicateQueue.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,13 @@ private async void SearchDuplicate(SimpleFileInfo fileInfo)
100100
fileKey = $"{fileKey}${fileInfo.LastWriteTime:yyyy-MM-dd HH:mm:ss}";
101101
}
102102

103-
var newFile = new List<SimpleFileInfo> {fileInfo};
103+
if ((_searchMatch & SearchMatchEnum.MD5) == SearchMatchEnum.MD5)
104+
{
105+
string md5 = JiuLing.CommonLibs.Security.MD5Utils.GetFileValueToLower(fileInfo.Path);
106+
fileKey = $"{fileKey}${md5}";
107+
}
108+
109+
var newFile = new List<SimpleFileInfo> { fileInfo };
104110
var resultFile = _duplicateFiles.AddOrUpdate(fileKey, newFile, (x, oldValue) =>
105111
{
106112
oldValue.Add(fileInfo);

0 commit comments

Comments
 (0)