文章出處

對于一個文件夾的改變,C#這邊有自己的類來實現,我們不需要關心它的內部實現機制,不需要關心它底層調用哪些API,我們只需要關心如何去調用它,如何讓它幫助我們記錄文件夾的修改情況即可。

   #region 監視文件夾的變化
            FileSystemWatcher watcher = new FileSystemWatcher();
            watcher.Path = "f:\\";
            watcher.NotifyFilter =//被監控的方面
               NotifyFilters.LastWrite |
               NotifyFilters.FileName |
               NotifyFilters.DirectoryName;

            // 訂閱一些事件,當它被觸發時(.net(windows)底層觸發它,我們不用管),執行我們的方法
            watcher.Changed += (object source, FileSystemEventArgs e) =>
            {
                Console.WriteLine("文件{0}已經被修改,修改類型{1}", e.FullPath, e.ChangeType.ToString());
            };
            watcher.Created += (object source, FileSystemEventArgs e) =>
            {
                Console.WriteLine("文件{0}被建立", e.FullPath);
            };
            watcher.Deleted += (object source, FileSystemEventArgs e) =>
            {
                Console.WriteLine("文件{0}已經被刪除", e.FullPath);
            };
            watcher.Renamed += (object source, RenamedEventArgs e) =>
            {
                Console.WriteLine("文件{0}的名稱已經從{1}變成了{2}", e.OldFullPath, e.OldName, e.Name);
            };

            // 為true表示開啟FileSystemWatcher組件,反之我們的監控將不啟作用
            watcher.EnableRaisingEvents = true;
            #endregion

另外,告訴大家一個 xor異或運算的使用技巧,就是它可以在不引入第三個變量的情況下,交替兩個變量的值,你的變量可以是數值,也可以是字符,如果是字符,我們需要使用它的hashcode值進行xor運算。

           #region xor兩個變量交換
            int a = 2;
            int b = 3;
            Console.WriteLine("a={0}", a);
            Console.WriteLine("b={0}", b);
            a = a ^ b ^ (b = a);
            Console.WriteLine("a={0}", a);
            Console.WriteLine("b={0}", b);
            #endregion

結果如圖:


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()