亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

C# FileSystemWatcher 監視磁盤文件變更

2019-11-17 02:45:26
字體:
來源:轉載
供稿:網友

C# FileSystemWatcher 監視磁盤文件變更

簡化需求:有一個簡化了的需求是這樣的:有一個拍照程序在運行,一旦抓拍之后則將圖片文件存儲至某目錄,然后圖片要上傳至遠程服務器并update數據庫。

原需求:原先的需求是這樣的:有一臺PDA掃碼槍,一個ip照相機放置在下線區傳送帶上方。當PDA掃描箱子上的條碼,觸發相機拍照,將圖片流傳至遠端服務器,找到對應的條碼,將圖片存儲并更新數據庫。

然而我不知道PDA掃描的瞬間如何與IP相機通信(藍牙或WLAN?),其實關鍵是我不知道怎樣使用IP相機的外觸發功能,增加藍牙觸發器?也不知道怎樣hack或ssh到這個相機(應該是linux的吧),所以只能先使用簡化需求的版本。

而簡化需求的版本,關鍵就是監視文件夾內容變化與上傳文件流。

昨天問了下度娘,C#中的監視組件名字叫做FileSystemWatcher。

于是寫了個demo,可以監視所有邏輯盤或者某個文件夾。

使用方法:

1.直接打開是監視所有邏輯磁盤文件變化。

2.或者傳遞參數,監視某一路徑文件變化。如圖,監視e盤

源代碼:

  1 namespace FileSystemWatcherDemo  2 {  3     class PRogram  4     {  5         static void Main(string[] args)  6         {  7             //watcher組  8             FileSystemWatcher[] watchers;  9  10             //若未傳遞參數,則監視所有文件系統,包括CD-ROM(不可用),可移動磁盤(不可用)等 11             if (args.Length == 0) 12             { 13                 string[] drivers = Directory.GetLogicalDrives(); 14                 watchers = new FileSystemWatcher[drivers.Length]; 15  16                 for (int i = 0; i < drivers.Length; i++) 17                 { 18                     try 19                     { 20                         watchers[i] = new FileSystemWatcher { Path = drivers[i] }; 21                     } 22                     catch (Exception ex) 23                     { 24                         Trace.TraceWarning(ex.Message); 25                     } 26                 } 27             } 28             else 29             { 30                 watchers = new FileSystemWatcher[1]; 31                 watchers[0] = new FileSystemWatcher { Path = args[0] }; 32             } 33  34             foreach (FileSystemWatcher w in watchers) 35             { 36                 if (w == null) continue; 37  38                 w.Filter = "*"; 39                 w.IncludeSubdirectories = true; 40                 w.EnableRaisingEvents = true; 41  42                 w.Created += onFileSystem_Changed; 43                 w.Deleted += onFileSystem_Changed; 44                 w.Changed += onFileSystem_Changed; 45                 w.Renamed += watcher_Renamed; 46             } 47  48             Console.ReadLine(); 49         } 50  51         #region [ 檢測文件是否占用 ] 52         /// <summary> 53         /// 檢測文件是否占用 54         /// </summary> 55         /// <param name="filename"></param> 56         /// <returns></returns> 57         static bool IsFileReady(string filename) 58         { 59             var fi = new FileInfo(filename); 60             FileStream fs = null; 61             try 62             { 63                 fs = fi.Open(FileMode.Open, Fileaccess.Read, FileShare.None); 64                 return true; 65             } 66             catch (IOException) 67             { 68                 return false; 69             } 70  71             finally 72             { 73                 if (fs != null) 74                     fs.Close(); 75             } 76         } 77         #endregion 78  79         private static volatile object _lock = true; 80         static void onFileSystem_Changed(object sender, FileSystemEventArgs e) 81         { 82             lock (_lock) 83             { 84                 Console.ForegroundColor = ConsoleColor.DarkGray; 85                 Console.Write("["); 86                 Console.Write(DateTime.Now.ToString("HH:mm:ss")); 87                 Console.Write("] "); 88  89                 switch (e.ChangeType.ToString().ToLower()) 90                 { 91                     case "created": 92                         //while (!IsFileReady(e.FullPath)) 93                         //{ 94                         //    if (!File.Exists(e.FullPath)) 95                         //        return; 96                         //    Thread.Sleep(100); 97                         //} 98                         Console.ForegroundColor = ConsoleColor.Green; 99                         Console.Write(e.ChangeType);100                         Console.ForegroundColor = ConsoleColor.White;101                         Console.Write(" ");102                         Console.Write(e.Name);103                         Console.Write(" ");104                         Console.ForegroundColor = ConsoleColor.DarkGray;105                         Console.Write(e.FullPath);106 107                         break;108                     case "deleted":109                         Console.ForegroundColor = ConsoleColor.Red;110                         Console.Write(e.ChangeType);111                         Console.ForegroundColor = ConsoleColor.White;112                         Console.Write(" ");113                         Console.Write(e.Name);114                         Console.Write(" ");115                         Console.ForegroundColor = ConsoleColor.DarkGray;116                         Console.Write(e.FullPath);117                         break;118                     case "changed":119                         Console.ForegroundColor = ConsoleColor.Cyan;120                         Console.Write(e.ChangeType);121                         Console.ForegroundColor = ConsoleColor.White;122                         Console.Write(" ");123                         Console.Write(e.Name);124                         Console.Write(" ");125                         Console.ForegroundColor = ConsoleColor.DarkGray;126                         Console.Write(e.FullPath);127                         break;128                 }129 130                 Console.Write("/r/n");131             }132         }133         static void watcher_Renamed(object sender, RenamedEventArgs e)134         {135             Console.ForegroundColor = ConsoleColor.Magenta;136             Console.Write(e.ChangeType);137             Console.ForegroundColor = ConsoleColor.White;138             Console.Write(" ");139             Console.Write(e.OldName);140             Console.Write(e.OldFullPath);141             Console.ForegroundColor = ConsoleColor.Yellow;142             Console.Write(" ");143             Console.Write(e.Name);144             Console.Write(e.FullPath);145             Console.Write(Thread.CurrentThread.Name);146             Console.Write("/r/n");147         }148     }149 }

仍有bug,望高手指正。

附上編譯好的exe,可以直接運行。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美一级大片视频| 热久久免费国产视频| 成人久久久久久| 国产精品久久久久影院日本| 亚洲欧美制服综合另类| 欧美性20hd另类| 美女999久久久精品视频| 欧美极品少妇xxxxⅹ裸体艺术| 91在线观看欧美日韩| 国产精品第一第二| 日韩不卡中文字幕| 久久精品2019中文字幕| 欧美日韩另类字幕中文| 午夜精品一区二区三区在线播放| 日韩在线观看视频免费| 社区色欧美激情 | 91九色在线视频| 韩国视频理论视频久久| 日韩久久午夜影院| 色偷偷av一区二区三区| 国产精品狼人色视频一区| 欧美xxxx做受欧美.88| 精品小视频在线| 欧美午夜片欧美片在线观看| 久久久精品一区| 美女精品视频一区| 国产一区二区三区高清在线观看| 亚洲激情在线视频| 久久国产精品免费视频| 在线精品国产成人综合| 欧美国产日韩一区二区三区| 91精品久久久久久久久青青| 欧美成人亚洲成人日韩成人| 久久精品久久久久久国产 免费| 久久久久久久久久久免费精品| 一区二区三区高清国产| 亚洲伊人第一页| 日产精品久久久一区二区福利| 色综合天天狠天天透天天伊人| 欧美成人中文字幕在线| 欧美午夜视频一区二区| 亚洲一区二区三区久久| 国产精品极品美女粉嫩高清在线| 91久久久久久久一区二区| 中文字幕在线精品| 精品久久久久久久久久ntr影视| 亚洲精品自拍偷拍| 精品美女国产在线| 欧美激情一区二区三级高清视频| 97超级碰碰人国产在线观看| 青青草原一区二区| 日韩在线视频一区| 91国语精品自产拍在线观看性色| 日韩国产精品亚洲а∨天堂免| 国产日韩在线免费| 97精品免费视频| 亚洲国产欧美久久| 在线成人激情黄色| 国产一区视频在线| 久久久久久久久久久久久久久久久久av| 日韩精品中文在线观看| 欧美大片va欧美在线播放| 久久人人爽人人爽爽久久| 亚洲区中文字幕| 亚洲国产三级网| 欧美日韩中文字幕在线| 韩国视频理论视频久久| 国产成人精品久久二区二区| 日韩欧美999| 在线观看日韩视频| 青青草99啪国产免费| 国产精品精品视频| 国产一区二区在线免费视频| 日韩精品999| 一区二区欧美日韩视频| 色妞在线综合亚洲欧美| 亚洲国产日韩欧美在线图片| 色综合久综合久久综合久鬼88| 国产亚洲精品成人av久久ww| 亚洲精品xxx| 91在线免费视频| 欧美一区二区三区免费观看| 日本久久亚洲电影| 亚洲无限av看| 久久人人97超碰精品888| 91亚洲精品一区二区| 国产亚洲精品美女久久久| 国内免费精品永久在线视频| 中文字幕日韩精品在线| 久久精品在线视频| 国产精品永久免费| 精品久久香蕉国产线看观看亚洲| 亚洲男人天堂九九视频| 成人激情视频网| 青青草精品毛片| 欧美激情精品久久久久久| 国产69精品99久久久久久宅男| 国产精品久久久久久av福利软件| 久久精品免费电影| 国产一区二区三区毛片| 最新的欧美黄色| 亚洲第一福利网站| 久久噜噜噜精品国产亚洲综合| 大胆欧美人体视频| 欧美午夜美女看片| 欧美国产在线视频| 亚洲色图校园春色| xxxxx成人.com| 欧美成人sm免费视频| 91大神在线播放精品| 成人在线观看视频网站| 狠狠干狠狠久久| 中国日韩欧美久久久久久久久| 亚洲成色www8888| 欧美乱大交做爰xxxⅹ性3| 欧美精品在线视频观看| 亚洲精品综合久久中文字幕| 欧美精品久久久久久久久久| 在线电影欧美日韩一区二区私密| 久久久在线观看| 国内外成人免费激情在线视频网站| 亚洲三级av在线| 亚洲精品久久在线| 中文字幕久久亚洲| 欧美性猛交xxxx乱大交蜜桃| 久久久久久九九九| 亚洲iv一区二区三区| 亚洲福利在线视频| 欧美精品福利在线| 欧美日韩成人在线视频| 国模精品视频一区二区三区| 97成人超碰免| 欧美亚洲另类激情另类| 国产69久久精品成人看| 国产成人精品国内自产拍免费看| 欧美巨大黑人极品精男| 亚洲色图13p| 国产亚洲美女久久| 久久综合久久美利坚合众国| 中文字幕精品一区久久久久| 疯狂做受xxxx高潮欧美日本| 亚洲影影院av| 亚洲欧洲中文天堂| 亚洲性无码av在线| 日韩在线观看免费网站| 不卡在线观看电视剧完整版| y97精品国产97久久久久久| 日韩精品高清在线| 久久久www成人免费精品| 亚洲精品在线观看www| 亚洲欧美精品伊人久久| 亚洲国产精品系列| 色综合男人天堂| 国产精品极品美女粉嫩高清在线| 久久久久久久爱| 在线成人一区二区| 国产成人中文字幕| 91黄色8090| 亚洲色无码播放| 国产大片精品免费永久看nba| 国产专区欧美专区| 成人黄色激情网| 欧美黑人性生活视频| 国内精品久久久|