請大神賜教
我想做一個檔案夾對比的程式
用遞回方法掃描E:\和G:\(我的備份盤),將檔案夾及檔案樹添加到TreeView1、TreeView2
掃描后獲取檔案夾大小、包含檔案夾數量、檔案數量、最后修改時間(包含子檔案夾數量,和WINDOWS顯示的一樣)
檔案資訊包括大小、最后修改時間
這樣對比2個TreeView就能知道哪些檔案修改過,需要重新備份
對比時,我的想法是,通過檔案夾大小、包含檔案夾數量、檔案數量和修改時間判斷檔案夾是不是一樣的,如果一樣,就不繼續判斷子檔案夾
這樣能節省時間
假如一個檔案夾下包含1個文本檔案,內容是“1”,這時檔案夾顯示
大小1位元組,包含檔案夾數量0,包含檔案數量1,最后修改日期XXX
將文本內容改為“11”,檔案夾還是顯示
大小1位元組,包含檔案夾數量0,包含檔案數量1,最后修改日期XXX
檔案的修改時間會變,檔案夾的修改時間不變
這樣就沒辦法判斷了,
我想知道檔案夾還有哪些屬性可以用來準確判斷,
不想用MD5之類的,因為我要掃描整個E盤,在掃描檔案時給每個檔案夾或檔案做標記很費時
我之前用了一個笨方法,因為檔案的修改日期會變,我就將檔案夾包含的所有子檔案夾、子檔案的資訊通過累加添加到tag上,
但檔案夾嵌套很多時tag會很長,掃描速度很慢,在掃描2次整個盤符后,記憶體溢位
uj5u.com熱心網友回復:
https://download.csdn.net/download/caozhy/11288057自己編的,你參考下
uj5u.com熱心網友回復:
你需要備份的是檔案而不是檔案夾,所以你需要遍歷每個檔案,你想跳過那些沒有變化過的檔案夾沒什么實際意義,真正有意義的是跳過沒有變化過的檔案。另外將檔案資訊添加到 TreeView 的意義何在?要顯示這些檔案嗎?不添加到 TreeView 同樣可以備份,如果只是想看結果,那么應該將備份操作的結果保存到日志里,最后從日志里提取資料顯示在 TreeView 上。uj5u.com熱心網友回復:
顯示到界面上方便我查看,可能有些檔案我不需要備份,但是會全都掃描出來,這樣我可以選擇性備份。跳過檔案夾的目的只是想更快速的對比,相同的檔案夾里邊的子檔案就不需要對比了,否則全部對比會很耗時的uj5u.com熱心網友回復:
我現在的做法是先掃描e盤,掃描資訊記錄在ToolStripText上,然后檔案夾的tag是將子檔案的掃描資訊累加,這樣就能保證檔案夾有唯一標識了,然后掃描G盤,最后通過tag對比檔案夾,相同就跳過,不同就涂色標記。這樣就是tag太長,而且運行速度慢uj5u.com熱心網友回復:
https://pan.baidu.com/s/1j9yRiHTWn2OO7GhIlwdoTQ
uj5u.com熱心網友回復:
這個不需要遞回把, 直接用 系統方法可以獲取到的 ,延時加載也可以。轉載請註明出處,本文鏈接:https://www.uj5u.com/net/113449.html
標籤:C#
上一篇:C# access加密前,無任何問題,但加密后,進行插入操作時,提示操作必須使用一個可更新的查詢?
下一篇:第一個博客
