程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 微軟同步框架(MSF)入門之六--文件(夾)同步

微軟同步框架(MSF)入門之六--文件(夾)同步

編輯:關於ASP.NET

在前五篇文章當中,介紹了Sync For ADO.NET Service,從這篇文章開始,將開始介紹有關使用MSF進行文件(夾)同步的相關知識。因為文件同步的應用目前比較廣泛,所以可能夠要用3-4篇文章來進行介紹。今天先介紹一下有關MSF文件同步的原理和使用MSF中現有的類來實現一個簡單的DEMO(本DEMO支持文件和文件夾)同步。

好的,下面開始今天的正文。

SyncServices可幫助應用程序在NTFS、FAT或SMB文件系統中同步文件、文件夾和子文件夾。要同步的目錄可為本地或遠程目錄,且不必同屬一個文件系統。應用程序可以使用靜態篩選器通過顯式列出文件或使用通配符(如*.txt)來排除或包括這些文件;或者應用程序可以設置篩選器來排除整個子文件夾。應用程序還可以注冊以接收文件同步進度的通知。

首先,我們需要了解一下MSF進行同步的原理。換句話說就是其進行文件同步的底層實現機制是什麼?

按MSF的SDK中所說明的(內置變更檢測算法,用於檢測針對同步作用域中的文件和文件夾所做的變更):

MSF文件同步服務會對以下屬性發生變更後進行所謂的"報告變更":

1.最後一次修改文件的時間。

2.如果啟用哈希運算,則是為該文件計算的哈希值。(關於計算變更檢測的哈希值:如果應用程序在初始化提供程序時指定了CompareFileStreams標志(對於托管代碼)或FILESYNC_INIT_FLAG_USE_HASHING標志(對於非托管代碼),該提供程序將使用文件流的所有內容計算每個文件的哈希值。然後,該提供程序會比較這些哈希值;這樣做可以更准確地執行變更檢測,但性能會稍有降低。在本DEMO中將不會使用該設置項)

3.文件大小。

4.文件或文件夾名稱。此檢查區分大小寫。

5.由提供程序處理的任意文件屬性。

如果發現文件與此前了解的文件具有相同的創建時間、大小和哈希值(如果使用了哈希運算),但是文件的名稱或路徑不同,則報告文件移動或重命名。如果發現多個文件符合這些條件,SyncServices將認為原始文件已刪除並且創建了新文件。

SyncServices將文件夾移動或重命名視作已刪除舊文件夾並且創建了新文件夾。報告該文件夾中的文件已移動。因此在這種情況下,通常無需重新發送文件數據。

上面介紹是的文件同步時所依據的“證明”(即憑什麼來解釋當前文件被修改,以及修改的地方在哪裡)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved