• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            歲月流轉(zhuǎn),往昔空明

            C++博客 首頁 新隨筆 聯(lián)系 聚合 管理
              118 Posts :: 3 Stories :: 413 Comments :: 0 Trackbacks
            這個(gè)工具源自于我的一個(gè)需求,
            我將文檔都保存在了硬盤上,只不過由于分布不夠大而只能分開放置于多個(gè)文件夾中。
            有時(shí)候我需要將這些數(shù)據(jù)進(jìn)行備份,一張盤也放不下,也就需要備份到多張盤中。

            此時(shí)問題出現(xiàn)了,如果我往硬盤上新添了一些文檔,在我下一次備份的時(shí),我如何準(zhǔn)確的篩選出新增的文檔。

            一般來講如果只是一個(gè)源盤和一個(gè)目標(biāo)盤,用Beyond Compare或者類似的工具就能解決問題。
            不過現(xiàn)在是多對(duì)多的,問題就變得比較復(fù)雜。

            因此我就做了這么個(gè)東西,可以將多個(gè)目錄組成虛擬的文件樹再進(jìn)行比較。
            文件夾的對(duì)應(yīng)關(guān)系直接利用同級(jí)文件夾的名稱來判斷
            我也提供了手工設(shè)置文件夾對(duì)應(yīng)關(guān)系的功能,不過因?yàn)閁I方面還沒考慮好所以沒有加上。

            文件之間的比較利用兩種方案,一種方案在文件被計(jì)算過MD5效驗(yàn)的時(shí)候直接使用MD5比較
            如果沒有MD5的話使用文件大小和最后修改時(shí)間比較
            由于文件比較不使用文件名,也就獲得不了對(duì)應(yīng)關(guān)系,因此目錄樹下面的所有文件的所有組合都要一一遍歷。
            同時(shí)由于計(jì)算MD5效驗(yàn)碼需要讀取整個(gè)文件,時(shí)間較長,因此Checksum是需要手動(dòng)計(jì)算和刷新的。

            最后就是樹可以整棵的被保存到快照文件中,格式是XML的格式,人也可以讀。
            比較過后,可以某個(gè)子樹或者單棵整樹的相同文件或這新增文件拷貝到一個(gè)目錄下。
            本來希望能直接生成Nero的刻錄清單的文件格式,后來找不到相關(guān)的資料就只好放棄了。

            Download Source Code Project,VS2005 / VS2005 SP1, XP SP2/SP3下通過。



            屏幕快照。紅色表示新增文件,藍(lán)色表示相同文件,黃色表示不完全對(duì)應(yīng)。

            posted on 2008-11-06 23:48 空明流轉(zhuǎn) 閱讀(2896) 評(píng)論(8)  編輯 收藏 引用

            評(píng)論

            # re: 文件夾比較備份工具 2008-11-07 08:37 ronliu
            直接比較文件名和修改時(shí)間?
            就像版本管理工具,比如vss那樣。  回復(fù)  更多評(píng)論
              

            # re: 文件夾比較備份工具 2008-11-07 09:11 天涯明月刀
            還是beyond compare好用  回復(fù)  更多評(píng)論
              

            # re: 文件夾比較備份工具 2008-11-07 09:14 飯中淹
            博主的意思是不比較文件名,直接用md5互相比較,找出某一方?jīng)]有,而另一方有的md5。這樣就算修改了名字也不會(huì)有問題。

            不過有一個(gè)問題需要考慮,如何避免垃圾文件,比如一方修改了名字也修改了內(nèi)容的。這樣同樣意義的文件就出現(xiàn)了兩個(gè)。


              回復(fù)  更多評(píng)論
              

            # re: 文件夾比較備份工具 2008-11-07 10:10 ronliu
            計(jì)算md5時(shí)間復(fù)雜度如何?  回復(fù)  更多評(píng)論
              

            # re: 文件夾比較備份工具 2008-11-07 11:06 空明流轉(zhuǎn)
            @天涯明月刀
            Beyond Compare不能將多個(gè)文件夾合并到一起當(dāng)作一個(gè)虛擬文件夾來處理.
            這個(gè)才是我寫這個(gè)工具的根本目的.
            ps,我是不用文件名的.
            對(duì)于備份的情況而言,改個(gè)名字實(shí)在太稀松平常了.
              回復(fù)  更多評(píng)論
              

            # re: 文件夾比較備份工具 2008-11-09 23:20 myy
            這是我個(gè)人業(yè)余寫的文件夾比較工具(下載包含delphi源碼):
            http://www.ccrun.com/view.asp?id=478

            設(shè)計(jì)思路與樓主類似,可以看看。  回復(fù)  更多評(píng)論
              

            # re: 文件夾比較備份工具 2008-11-30 21:20 tarchen
            也想做這樣的工具,就像你提到的一樣,現(xiàn)在從網(wǎng)上下載了很多資料/軟件等等,經(jīng)常備份,也不知道,重復(fù)備份了嗎?備份了多少次?有時(shí)間想整理時(shí),如果一個(gè)目錄一個(gè)目錄的手工比較,費(fèi)時(shí)費(fèi)勁不說,最重要的是不要出錯(cuò)遺漏。所以很早就有想法自己做一個(gè)這樣的軟件,但是限于水平和時(shí)間,一直沒有做好。
            今天看到你的軟件很是高興。  回復(fù)  更多評(píng)論
              

            # re: 文件夾比較備份工具 2008-12-12 22:02 xoyojank
            Total Commander可以做到  回復(fù)  更多評(píng)論
              


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            久久综合鬼色88久久精品综合自在自线噜噜| 97久久精品无码一区二区天美| 久久中文精品无码中文字幕| 欧美大战日韩91综合一区婷婷久久青草 | 亚洲午夜无码AV毛片久久| 中文字幕无码精品亚洲资源网久久| 久久久久亚洲AV无码专区体验| 国产精品免费久久久久影院| 亚洲精品无码久久久久sm| 国产精品九九久久精品女同亚洲欧美日韩综合区 | 久久精品国产亚洲一区二区三区| 亚洲欧美另类日本久久国产真实乱对白 | 久久综合精品国产一区二区三区| 久久婷婷五月综合国产尤物app| 久久高清一级毛片| AV狠狠色丁香婷婷综合久久| 色妞色综合久久夜夜| 久久中文字幕无码专区| 久久99精品国产麻豆不卡| 69久久夜色精品国产69| 久久天天躁狠狠躁夜夜avapp| 久久青青草原精品国产不卡| 一本综合久久国产二区| 亚洲国产成人精品91久久久 | 99久久精品国产高清一区二区 | 日产精品久久久久久久| 亚洲中文久久精品无码| 中文国产成人精品久久不卡| 要久久爱在线免费观看| 香蕉99久久国产综合精品宅男自| 久久国产热这里只有精品| 国内精品久久久久久久久电影网| 婷婷综合久久中文字幕| 久久综合九色综合欧美狠狠| 亚洲国产二区三区久久| 国内精品久久久久久中文字幕 | 成人精品一区二区久久| 国产一区二区精品久久岳| 精品久久久久久无码中文字幕| 国产高潮国产高潮久久久91 | 精品国产日韩久久亚洲|