{"id":840,"date":"2017-04-21T15:23:03","date_gmt":"2017-04-21T12:23:03","guid":{"rendered":"https:\/\/burakcaliskan.org\/blog\/?p=840"},"modified":"2017-05-08T23:29:01","modified_gmt":"2017-05-08T20:29:01","slug":"filesystemwatcher-ile-klasor-dosya-ve-disk-islemlerini-takip-etmek","status":"publish","type":"post","link":"https:\/\/burakcaliskan.org\/blog\/filesystemwatcher-ile-klasor-dosya-ve-disk-islemlerini-takip-etmek\/","title":{"rendered":"FileSystemWatcher ile klas\u00f6r, dosya ve disk i\u015flemlerini takip etmek"},"content":{"rendered":"<p>Bu makalemizde Windows projelerimizde, bir s\u00fcr\u00fcc\u00fc veya klas\u00f6rde olan biten islemleri takip etmek, izlemek i\u00e7in ihtiyacimiz olan <strong>FileSystemWatcher<\/strong> kontrol\u00fc hakkinda bilgi bulabilirsiniz.<\/p>\n<p><strong>FileSystemWatcher<\/strong> kontrol\u00fc, parametre olarak verdigimiz bir diski, klas\u00f6r\u00fc veya dosyayi takip etmemizi saglar. Dosyanin adi degistiginde, degisiklik oldugunda, silindiginde veya yeni bir dosya olusturdugumuzda bunun bilgisini alabiliriz. <strong>FileSystemWatcher nesnesini <\/strong>ister toolboxtan projenize s\u00fcr\u00fckleyip ekleyebilirsiniz. Isterseniz de kendiniz de \u00f6rnekleyerek olusturabilirsiniz.<!--more--><\/p>\n<p>En \u00e7ok kullanilan \u00f6zellikleri:<\/p>\n<p><strong>Filter: \u00a0<\/strong>Eger bir dosya tipinin takip edilmesini istiyorsaniz, buraya istediginiz uzantiyi vermelisiniz. Eger bir dosya degil, t\u00fcm dosya uzantilarini takip etmek istiyorsaniz &#8220;&#8221; veya &#8220;*.*&#8221; degerini vermelisiniz. Veya sadece excel d\u00f6k\u00fcmanini takip etmek istiyorsaniz &#8220;.xls&#8221; uzantisini verebilirsiniz. Yalniz s\u00f6yle bir durum var ya sadece belirlediginiz tek bir dosya uzantisini takip edebilirsiniz. Ya da t\u00fcm dosya uzantilarini takip edebilirsiniz. Yani ben sadece excel ve access dosyalarini takip etmek istiyorum gibi birseye izin verilmiyor. Ya bir dosya uzantisi, yada t\u00fcm dosya uzantilarini takip edebilirsiniz.<\/p>\n<p><strong>IncludeSubdirectories:\u00a0<\/strong>Eger takip edilmesini istediginiz bir klas\u00f6r veya diskse, bu \u00f6zelligi true yaparak, alt klas\u00f6rleri de dinleyebilirsiniz. Yani farzedelim C s\u00fcr\u00fcc\u00fcs\u00fcn\u00fc dinliyoruz ve IncludeSubdirectories \u00f6zelligi false. Bu durumda sadece C s\u00fcr\u00fcc\u00fcs\u00fc i\u00e7indeki islemi dinleyecek. C:\/\/Program Files i\u00e7erisinde bir islem yapilirsa algilamayacaktir. Eger IncludeSubdirectories \u00f6zelligini true yaparsaniz da C s\u00fcr\u00fcc\u00fcs\u00fc i\u00e7erisindeki t\u00fcm alt klas\u00f6rlerde de yapilan islemleri algilayacaktir.<\/p>\n<p><strong>Path:\u00a0<\/strong>Dinlemek istediginiz alan. Buraya bir klas\u00f6r veya s\u00fcr\u00fcc\u00fc ismi verebilirsiniz.<\/p>\n<p><strong>EnableRaisingEvents:\u00a0<\/strong>Olaylarin takip edilip edilmeyecegini bu \u00f6zellikten ayarliyoruz. Eger false yaparsak dosya ile ilgili islemler sonucunda FileSystemWatcher tepki vermeyecektir. Yani bu \u00f6zelligi proje \u00e7alisir durumdayken true-false yaparak takip etme islemini durdurup-baslatabilirsiniz.<\/p>\n<p>Asagidaki \u00f6rnegi incelerseniz daha kalici olacaktir:<\/p>\n<div class=\"code\">\n<p>public\u00a0voidDinle(string\u00a0_yol)<\/p>\n<p>{<\/p>\n<p>FileSystemWatcher\u00a0fsw =\u00a0newFileSystemWatcher();<\/p>\n<p>fsw.Path = _yol;<\/p>\n<p>fsw.Filter =\u00a0&#8220;*.*&#8221;;<\/p>\n<p>fsw.IncludeSubdirectories =\u00a0true;<\/p>\n<p>fsw.EnableRaisingEvents =\u00a0true;<\/p>\n<p>&nbsp;<\/p>\n<p>fsw.Changed +=\u00a0new\u00a0FileSystemEventHandler(Degisiklik);<\/p>\n<p>fsw.Created +=\u00a0new\u00a0FileSystemEventHandler(Olusturma);<\/p>\n<p>fsw.Deleted +=\u00a0new\u00a0FileSystemEventHandler(Silinme);<\/p>\n<p>fsw.Renamed +=\u00a0new\u00a0RenamedEventHandler(IsimDegisikligi);<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>public\u00a0voidIsimDegisikligi(object\u00a0sender,\u00a0RenamedEventArgs\u00a0e)<\/p>\n<p>{<\/p>\n<p>lbLog.Items.Add(e.Name +\u00a0&#8221; dosyasininismi degisti&#8221;);<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>public\u00a0voidSilinme(object\u00a0sender,\u00a0FileSystemEventArgse)<\/p>\n<p>{<\/p>\n<p>lbLog.Items.Add(e.Name +\u00a0&#8221; dosyasisilindi&#8221;);<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>public\u00a0voidOlusturma(object\u00a0sender,\u00a0FileSystemEventArgs\u00a0e)<\/p>\n<p>{<\/p>\n<p>lbLog.Items.Add(e.Name +\u00a0&#8221; yeni dosyaolusturuldu&#8221;);<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>public\u00a0voidDegisiklik(object\u00a0sender,\u00a0FileSystemEventArgs\u00a0e)<\/p>\n<p>{<\/p>\n<p>lbLog.Items.Add(e.Name +\u00a0&#8221; dosyasindadegisiklik olustu&#8221;);<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>private\u00a0voidForm1_Load(object\u00a0sender,\u00a0EventArgs\u00a0e)<\/p>\n<p>{<\/p>\n<p>CheckForIllegalCrossThreadCalls =\u00a0false;<\/p>\n<p>}<\/p>\n<\/div>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bu makalemizde Windows projelerimizde, bir s\u00fcr\u00fcc\u00fc veya klas\u00f6rde olan biten islemleri takip etmek, izlemek i\u00e7in ihtiyacimiz olan FileSystemWatcher kontrol\u00fc hakkinda bilgi bulabilirsiniz. FileSystemWatcher kontrol\u00fc, parametre olarak verdigimiz bir diski, klas\u00f6r\u00fc veya dosyayi takip etmemizi saglar. Dosyanin adi degistiginde, degisiklik oldugunda, silindiginde veya yeni bir dosya olusturdugumuzda bunun bilgisini alabiliriz. FileSystemWatcher nesnesini ister toolboxtan projenize s\u00fcr\u00fckleyip [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":898,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[23,20],"tags":[],"_links":{"self":[{"href":"https:\/\/burakcaliskan.org\/blog\/wp-json\/wp\/v2\/posts\/840"}],"collection":[{"href":"https:\/\/burakcaliskan.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/burakcaliskan.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/burakcaliskan.org\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/burakcaliskan.org\/blog\/wp-json\/wp\/v2\/comments?post=840"}],"version-history":[{"count":2,"href":"https:\/\/burakcaliskan.org\/blog\/wp-json\/wp\/v2\/posts\/840\/revisions"}],"predecessor-version":[{"id":866,"href":"https:\/\/burakcaliskan.org\/blog\/wp-json\/wp\/v2\/posts\/840\/revisions\/866"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/burakcaliskan.org\/blog\/wp-json\/wp\/v2\/media\/898"}],"wp:attachment":[{"href":"https:\/\/burakcaliskan.org\/blog\/wp-json\/wp\/v2\/media?parent=840"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/burakcaliskan.org\/blog\/wp-json\/wp\/v2\/categories?post=840"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/burakcaliskan.org\/blog\/wp-json\/wp\/v2\/tags?post=840"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}