亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        使用Windows服務(wù)實現(xiàn)文件夾同步的技術(shù)研究

        2016-05-14 10:33:51鄒珺
        軟件工程 2016年7期
        關(guān)鍵詞:同步文件夾監(jiān)控

        鄒珺

        摘 要:為了讓文件夾能夠?qū)崟r得以同步,需要一個工具不停地監(jiān)控兩個文件夾的異同,該工具實現(xiàn)了一個專門的Windows服務(wù)來實現(xiàn)文件夾的同步功能。本文主要描述文件夾同步服務(wù)程序的技術(shù)研究指定要同步的源文件夾,同步到的目標文件夾,設(shè)置同步項目、同步時間間隔,服務(wù)程序?qū)⒏鶕?jù)指定的分鐘數(shù)自動進行文件夾的同步。當(dāng)同步服務(wù)完成后,可以看到同步的狀態(tài)信息,比如已更新的文件個數(shù)或已刪除的文件個數(shù)等。

        關(guān)鍵詞:文件夾;同步;監(jiān)控;Windows服務(wù)

        中圖分類號:TP312 文獻標識碼:A

        1 引言(Introduction)

        在很多場合,用戶需要在兩個文件夾之間維持同步的工作(比如更新Web文件),或基于安全的原因備份某個文件夾中的內(nèi)容到其他文件夾等。一般的做法是使用Windows資源管理器手工實現(xiàn)文件夾的同步,但是人們時常忘記這一工作。

        要實現(xiàn)兩個文件夾同步,必須要有一個監(jiān)控工具時刻監(jiān)測這兩個文件夾,并比較它們的不同之處。當(dāng)兩個文件夾其中一個發(fā)生變化,比如對某個文件進行修改后,同步工具能完成實時同步。事實上這種工具目前的需求量很大,很多文件夾需要與多個目標位置保持同步,如果通過手工實現(xiàn)同步,其弊端主要包括工作量大,容易出錯等。

        本文主要研究的是一個功能強大的文件夾同步服務(wù)程序,用戶可以指定要同步的一個或多個文件夾,指定同步的時間,程序在一個Windows服務(wù)后臺進行檢測,將文件夾從一個源位置同步到目標位置。

        2 文件夾同步功能概述(Summary of folder

        synchronization)

        文件夾同步功能的技術(shù)提供了一個同步服務(wù)配置工具,這是一個Windows Forms項目,實現(xiàn)對服務(wù)的配置,配置結(jié)果保存為XML文件格式。同時為了調(diào)試Windows服務(wù),程序?qū)崿F(xiàn)了一個服務(wù)控制臺工具。調(diào)試一個Windows服務(wù)非常麻煩,這個控制臺程序使程序員可以調(diào)試包含在Windows服務(wù)中的核心代碼的實現(xiàn),不用去頻繁地安裝卸載服務(wù)。這個控制臺程序還可以與文件服務(wù)配置程序進行通信。使用WCF命令管道在兩個進程之間進行通信[1]。該系統(tǒng)組成結(jié)構(gòu)如圖1所示。

        文件夾同步的主要功能通過一個類庫項目SynchroLib實現(xiàn),便于多次重用。該項目中的對象包括同步項集合對象、后臺同步線程等。

        3.1 實現(xiàn)文件夾同步項集合對象

        SyncItemCollection集合實際上是一個泛型的List對象。但是SyncItemCollection需要具有從XML元素中獲取同步對象的能力,以及允許用戶開始所有同步對象的更新工作,因此從List派生,也可以實現(xiàn)一個雷,在內(nèi)部包含一個泛型的List集合來處理多個同步對象[2]。

        SyncItemCollection對象有一個XElement類型的屬性,該屬性將根據(jù)在構(gòu)造函數(shù)中傳入XML元素來解析出多個SyncItem對象并加載到List集合中。該屬性的定義代碼如下:

        get設(shè)置區(qū)域中,通過實例化一個元素名稱為SyncItems來構(gòu)造一個XML片段。然后遍歷集合中SyncItem對象,將SyncItem的XElement屬性返回的XML片段加入到該XElement的子元素集合中。在set設(shè)置器中,通過遍歷XElement的子元素集合來實例化新的SyncItem對象,再添加到泛型集合中構(gòu)造了同步集合。

        3.2 實現(xiàn)后臺同步線程

        SyncFiles實現(xiàn)了同步文件的操作,該方法將根據(jù)是否能進行同步工作來實現(xiàn)同步,實現(xiàn)代碼如下:

        這個方法最核心的部分在于使用ToFilesList的Update將源文件夾中的文件更新到目標文件夾,更新前和更新后都記錄了當(dāng)前時間,以便記錄下更新所花費的時間,并且記得更新的文件個數(shù)。在更新完成后,將調(diào)用FileInfoEvent事件處理代碼[3]。

        4 文件夾同步關(guān)鍵技術(shù)(Key technology of folder

        synchronization)

        4.1 使用WCF開發(fā)命名管道程序

        進程間通信(IPC)的應(yīng)用非常廣泛,其特點是消息無須跨越防火墻和主機。IPC是一種通信的方法,源于UNIX操作系統(tǒng)。在Windows操作系統(tǒng)中,使用進程間通信除了命名管道,還可以使用剪貼板、郵件槽、TCP/IP通信、內(nèi)存映射文件等技術(shù)[4]。

        WCF本身提供了NetNamedPipeBing對象,使創(chuàng)建命名管道變得非常簡單。WCF把通信都進行了統(tǒng)一化,假如熟悉WCF開發(fā),完全不用去學(xué)習(xí)與命名管道相關(guān)的細節(jié),由WCF實現(xiàn)管道的創(chuàng)建與通信工作。

        使用NetNamedPipeBinding綁定與其他類型綁定的不同之處在于路徑的指定,例如使用地址:net.pipe://localhost/SynchroServiceWCF。地址中的net.pipe對應(yīng)命名管道協(xié)議,任何使用了命名管道傳輸通道的綁定都使用net.pipe作為地址的協(xié)議部分。localhost是地址的主機部分,而SynchroServiceWCF是一個可選項,是為了使系統(tǒng)可讀,通常是服務(wù)名稱,命名應(yīng)該與服務(wù)內(nèi)容相關(guān),讓人更清楚服務(wù)的作用[5]。

        4.2 實現(xiàn)監(jiān)控和配置項目

        配置和監(jiān)控Windows Forms項目提供了用戶界面與用戶交互。該項目提供了如下功能讓用戶配置文件同步服務(wù),以及查看由Windows服務(wù)返回的文件同步結(jié)果消息。

        (1)允許添加和修改同步項,以及用于文件同步所需要的一些設(shè)置選項,這些選項將被保存到XML配置文件中。

        (2)允許啟動和停止Windows服務(wù),以及作為WCF服務(wù)宿主來監(jiān)聽來自Windows服務(wù)的同步結(jié)果消息。

        (3)允許安裝和卸載Windows服務(wù),并能檢查Windows服務(wù)是否安裝。

        實現(xiàn)這個項目使文件同步程序能夠提高使用性,也便于查看在文件同步過程中到底是成功還是失敗,能深入了解文件同步的過程[6]。

        4.2.1 在主窗口中啟動或停止服務(wù)

        用戶主界面的啟動、停止服務(wù)都將調(diào)用Globals靜態(tài)類中定義的相關(guān)的方法來啟動和停止服務(wù)。當(dāng)服務(wù)啟動后,如果Windows服務(wù)實現(xiàn)了同步的操作,將使用命名管道發(fā)送同步消息,WCF服務(wù)受到消息,觸發(fā)Form1_SynchroHostEvent事件處理代碼,代碼如下:

        在代碼中,首先使用擴展方法ClearSeconds清除日期時間中的秒數(shù),再判斷ListBox中是否存在記錄。如果存在,則在一個循環(huán)do中進行刪除操作。在循環(huán)體中,總檢查ListBox中的最后一行,得到最后一行顯示的文本,先獲取表示日期時間的前16個字符串,使用DateTime.TryParse將其轉(zhuǎn)換為日期格式。然后判斷該時間與從服務(wù)器端當(dāng)前返回的時間是否相差多過一天,如果大于0,表示超過24小時,則進行項的移除;當(dāng)delete標志為false時,表示沒有大于1天的日志,則退出循環(huán)。最后將從WCF服務(wù)中傳回的小時插入到ListBox中的頂部,即第0行[7]。

        4.2.2 使用同步項更新用戶界面

        FormAddSyncItem類重載了默認的構(gòu)造函數(shù),用來接收一個List集合和一個要編輯的SyncItem。一旦SyncItem被傳入,會使用同步對象中的屬性來更新用戶界面。FormAddSyncItem類的構(gòu)造函數(shù)代碼如下:

        之所以傳入同步項名稱集合,是因為程序要避免出現(xiàn)具有相同名稱的同步項。如果是新增狀態(tài),程序通過循環(huán)的方式自動提供了一個同步項名稱。如果不為新增狀態(tài),程序?qū)膫魅氲腟yncItem中更新用戶界面,以便用戶可以編輯現(xiàn)有的同步項[8]。

        5 結(jié)論(Conclusion)

        使用System.IO命名空間中的文件操作類能實現(xiàn)在兩個或多個文件夾之前自動復(fù)制備份,實現(xiàn)同步工作,并使用OOP方法設(shè)計文件同步相關(guān)的類,將文件同步的核心功能實現(xiàn)在Windows服務(wù)中,為了在Windows服務(wù)與監(jiān)控配置程序之間通信,使用WCF命名管道實現(xiàn)了進程間的通信。

        服務(wù)類應(yīng)用程序的開發(fā)在實現(xiàn)文件夾同步技術(shù)中發(fā)揮了很大的優(yōu)勢,同時能更深入地理解Windows服務(wù)的使用,其相關(guān)技術(shù)有待進一步研究。

        參考文獻(References)

        [1] Qingfeng Jing,et al.Pseudo-noise preamble based joint frame and frequency synchronization algorithm in OFDM communication systems[J].Journal of Systems Engineering and Electronics,2014,(01):251-253.

        [2] R.Rakkiyappan,N.Sakthivel,S.Lakshmanan.Exponential synchronization of complex dynamical networks with Markovian jumping parameters using sampled-data and mode-dependent probabilistic time-varying delays[J].Chinese Physics B,2014(02):891-892.

        [3] Hui-Na Feng,Jun-Min Li.Distributed Adaptive Synchronization of Complex Dynamical Network with Unknown Time-varying Weights[J].International Journal of Automation and Computing,2015(03):475-476.

        [4] 李鳴洋.Linux下實時文件同步傳輸系統(tǒng)的實現(xiàn)[J].電腦知識與技術(shù),2014(31):89-91.

        [5] 許圣明,等.基于有序哈希樹的RPKI資料庫數(shù)據(jù)同步方法[J].計算機系統(tǒng)應(yīng)用,2016(06):132-134.

        [6] 王賓,劉釗遠.基于Rsync的遠程文件同步優(yōu)化模型[J].計算機與現(xiàn)代化,2015(04):292-294.

        [7] 劉珺,葉勇,石竹.文件同步系統(tǒng)的研究和實現(xiàn)[J].信息安全與通信保密,2014(02):439-441.

        [8] 周平,劉曉潔.基于兩級分塊的文件同步方法[J].計算機工程與設(shè)計,2014(03):59-62.

        猜你喜歡
        同步文件夾監(jiān)控
        磁力文件夾
        The Great Barrier Reef shows coral comeback
        你被監(jiān)控了嗎?
        Zabbix在ATS系統(tǒng)集中監(jiān)控中的應(yīng)用
        看監(jiān)控攝像機的4K之道
        調(diào)動右鍵 解決文件夾管理三大難題
        素質(zhì)教育理念下藝術(shù)教育改革的思路
        政府職能的轉(zhuǎn)變與中國經(jīng)濟結(jié)構(gòu)調(diào)整的同步
        商情(2016年42期)2016-12-23 14:26:58
        公共藝術(shù)與城市設(shè)計的協(xié)調(diào)與同步
        一種新型雙軌同步焊接的焊接裝置
        久久99精品久久久66| 人妻无码中文字幕| 国产影片中文字幕| 国产偷2018在线观看午夜| 给我播放的视频在线观看| 免费久久久一本精品久久区| 日韩欧美成人免费观看| 免费啪啪视频一区| 最新国产精品精品视频| 国产一区二区三区啊啊| 国产精品99精品无码视亚| 亚洲无码精品免费片| 亚洲av毛片成人精品| 亚州终合人妖一区二区三区| 中字幕人妻一区二区三区| 欧美在线不卡视频| 亚洲精品一区二区三区蜜臀| 久久九九精品国产av| 国产精品综合一区二区三区| 亚洲乱码一区二区三区成人小说| 淫秽在线中国国产视频| 永久免费毛片在线播放| 看国产黄大片在线观看| 8090成人午夜精品无码| 黄色国产精品福利刺激午夜片| 欧美人与禽zozzo性伦交| 国产视频毛片| 日韩精品一级在线视频| 无码爽视频| 少妇对白露脸打电话系列| 国产啪精品视频网站免| 久久av粉嫩一区二区| 亚洲精品国产av天美传媒| 国产精品久久久久…| 亚洲av成人永久网站一区| 日产精品久久久一区二区| 国产精品日韩高清在线蜜芽| 午夜黄色一区二区不卡| 亚洲精品一区久久久久一品av| 国产亚洲av手机在线观看 | 久久99精品国产99久久6男男|