用linq方式查詢重複檔案

2021-10-02 00:08:40 字數 2244 閱讀 8485

用linq方式在一組資料夾及兩組資料夾中查詢重複檔案,並可移動或刪除重複檔案

在10萬級別以上檔案中試用,效果良好

一:在一組資料夾中查詢重複檔案

**:

//已讀取完畢的檔案資訊及md5的entity

listarr_filesmd5_tmp = new list();

//....

//要查詢檔案數,

i_checkfilescount = arr_filesmd5_tmp.count;

//linq查詢,重複值》1

list> lstsamefile = arr_filesmd5_tmp.groupby(a => a.str_md5)

.where(g => g.count() > 1).tolist();

//序號

int iindex = 0;

//entity

entity_filewithmd5withcorrespond firstobj = null;

//迴圈(為了找出該檔案對應的重複檔案)

lstsamefile.foreach(a =>

// igroupin**ar lsttmp = a.tolist();

//lsttmp.foreach(b =>

else

//序號

iindex++;

});});

二:在兩組資料夾中查詢重複檔案

**:

//已讀取完畢的檔案資訊及md5的entity

listarr_filesmd5_tmp1 = new list();

listarr_filesmd5_tmp2 = new list();

//....

//ienumerable// enumerable.joiniteratorvar lstsamefile = from g2 in arr_filesmd5_tmp2

join g1 in arr_filesmd5_tmp1

on g2.str_md5 equals g1.str_md5

select new entity_filewithmd5withcorrespond()

;//去除其中重複的項

//listg_lstdelfiles = lstsamefile.groupby(p => p.str_file_name_del)

.select(g => g.first())

.tolist();

三:檔案的md5讀取類

注:為提高對檔案讀取速度,對於大於20k左右的檔案,讀取首位約10k資料

using system;

using system.collections.generic;

using system.text;

using system.io;

using system.security.cryptography;

namespace dmassistantsystem

return stemp.tolower();

}/// /// 二進位製流的md5加密

///

///

///

public static string ge***5forbina(byte btar)

return g_sb.tostring().tolower();

}/// /// 對檔案流進行md5加密

///

///

///

public static string ge***5forfile(string strfilepath)

return g_sb.tostring().tolower();

}else

}//catch (exception ee)

catch (exception ee) ;

}#endregion}}

用linq方式查詢重複檔案

linq指定列查詢 去重複 排序 top行

cnt.dlx newssendto where x x.newsid nid x.sendtype 2 select s new distinct tolist orderbydescending s s.sendto take 10 說明 where 裡面為查詢條件 select 為查詢的篩選條...

用LINQ在集合中查詢特定物件

這裡是原文出處 簡單的概括linq linq是language integrated query的縮寫,是c 3.0和vb 9.0中新加入的語言特性,可以在程式設計時使用內建的查詢語言進行基於集合的操作。listuserlist getuserlist var userwithoddid from ...

重複檔案清理查詢

duplicateviewer mac版是一款可以在蘋果電腦mac os平台上使用的重複檔案查詢工具,duplicateviewer mac版能夠幫你快速找出磁碟中有哪些檔案是重複的,還可以幫你找出哪些檔案占用了大量的磁碟空間,你可以將這些重複的 大體積的檔案進行刪除以節省磁碟空間。拖動或新增要掃瞄...