@@ -76,6 +76,8 @@ private void InitializeSearchCondition()
7676 ChkIgnoreSystemFile . IsChecked = true ;
7777 ChkIgnoreSmallFile . IsChecked = false ;
7878 RdoAllFile . IsChecked = true ;
79+ ChkPreviewImage . IsChecked = false ;
80+ ChkDeleteEmptyDirectory . IsChecked = false ;
7981
8082 _myModel . SearchDirectory . Clear ( ) ;
8183 }
@@ -182,6 +184,13 @@ private void AddSearchFolderOnly(string path)
182184 {
183185 return ;
184186 }
187+
188+ if ( _myModel . SearchDirectory . Any ( x => x . DirectoryName . IndexOf ( path ) == 0 || path . IndexOf ( x . DirectoryName ) == 0 ) )
189+ {
190+ MessageBox . Show ( "添加失败:查找路径不能相互包含" , "重复文件查找" , MessageBoxButton . OK , MessageBoxImage . Error ) ;
191+ return ;
192+ }
193+
185194 _myModel . SearchDirectory . Add ( new SearchDirectoryModel ( )
186195 {
187196 DirectoryName = path
@@ -402,6 +411,11 @@ private void SearchFinished()
402411
403412 private void ListViewDuplicateFile_SelectionChanged ( object sender , SelectionChangedEventArgs e )
404413 {
414+ if ( ChkPreviewImage . IsChecked == false )
415+ {
416+ return ;
417+ }
418+
405419 var lv = sender as ListView ;
406420 if ( lv ? . SelectedItem is not DuplicateFileModel selectFile )
407421 {
@@ -490,7 +504,18 @@ private void BtnDeleteFile_Click(object sender, RoutedEventArgs e)
490504 {
491505 continue ;
492506 }
493- System . IO . File . Delete ( _myModel . DuplicateFiles [ i ] . Path ) ;
507+
508+ string fileFullName = _myModel . DuplicateFiles [ i ] . Path ;
509+ string directory = Path . GetDirectoryName ( fileFullName ) ;
510+ if ( File . Exists ( fileFullName ) )
511+ {
512+ File . Delete ( fileFullName ) ;
513+ }
514+ if ( ChkDeleteEmptyDirectory . IsChecked == true && Directory . GetDirectories ( directory ) . Length == 0 && Directory . GetFiles ( directory ) . Length == 0 )
515+ {
516+ Directory . Delete ( directory ) ;
517+ }
518+
494519 _myModel . DuplicateFiles . RemoveAt ( i ) ;
495520 }
496521
0 commit comments