C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: 【C#】fileSystemWatcherについて


(過去ログ 31 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■15272 / inTopicNo.1)  【C#】fileSystemWatcherについて
  
□投稿者/ fake_of_all (1回)-(2008/03/09(Sun) 23:56:05)

分類:[C#] 

始めまして。
 fileSystemWatcherについて質問があります。

 fileSystemWatcherを使用し、監視しているフォルダーにファイルが作られ
たらメッセージボックスを表示しようとしています。
 プロパティは、NotifyFilterはLastWriteを使用し、監視しているフォルダ
ーにファイルが更新されるのをきっかけにメッセージボックスを表示しようと
しています。ちなみに、FileSystemWatcherのプロパティのほかの設定はデフ
ォルトのまま使用してます。FileSystemWatcherのイベントはchangedを使用し
ています。
 ここからが問題なのですが、監視しているフォルダーにファイルを更新する
と1回の更新につき1つのメッセージボックスが表示される予定なのですが、
実際は複数表示されてしまいます。これを1回更新するごとに1つのメッセー
ジボックス(処理)を表示する(行う)ようにするにはどうすればよいでしょ
うか?
 以下にコードをのせておきます。よろしくお願いいたします。



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
private void fileSystemWatcher1_Changed(object sender, System.IO.FileS
ystemEventArgs e)
{
    MessageBox.Show("test");

}





引用返信 編集キー/
■15273 / inTopicNo.2)  Re[1]: 【C#】fileSystemWatcherについて
□投稿者/ myugaru (36回)-(2008/03/10(Mon) 01:06:59)
myugaru さんの Web サイト
2008/03/10(Mon) 01:59:43 編集(投稿者)
2008/03/10(Mon) 01:08:45 編集(投稿者)

No15272 (fake_of_all さん) に返信
>1回の更新につき1つのメッセージボックスが表示される予定なのですが、
実際は複数表示されてしまいます。

いやいやいや。
複数表示されてるんだから複数更新してるんじゃないのでしょうかね?
自分を信じるのか多くの実績を生み出しているクラスライブラリを信じるのかそれがまず問題。

まずあなたのおっしゃってる現象はあっさり確認できます。
メモ帳とかでファイルを上書きすれば3回とかメッセージでますね。

メモ帳とかはファイル開いて読んでとか結構内部でごにょごにょしてるんです。だからファイルの更新もあなたのオペレーションが上書き1回でも実は何回もファイルに更新してるって事です。
そういうとこに気付かなきゃ進みませんよ。
テストが間違ってるんです。


次。ちょろっと確認しましたらコマンドラインで
dir > a.txt
みたいにファイルつくると1回だけメッセージが出ます。
確実なのはファイルとか作るプログラムも自分で書くことです。


引用返信 編集キー/
■15277 / inTopicNo.3)  Re[1]: 【C#】fileSystemWatcherについて
□投稿者/ はつね (500回)-(2008/03/10(Mon) 07:14:19)
No15272 (fake_of_all さん) に返信
>  fileSystemWatcherを使用し、監視しているフォルダーにファイルが作られ
> たらメッセージボックスを表示しようとしています。
>  プロパティは、NotifyFilterはLastWriteを使用し、監視しているフォルダ
> ーにファイルが更新されるのをきっかけにメッセージボックスを表示しようと
> しています。ちなみに、FileSystemWatcherのプロパティのほかの設定はデフ
> ォルトのまま使用してます。FileSystemWatcherのイベントはchangedを使用し
> ています。

ファイルが作られるのを監視するのであれば、ChangedじゃなくてCreatedイベントを使用した方がよいでしょう。

監視しているフォルダのファイルが更新されるかを監視するのであれば、FileSystemWatcherを単純に使用するだけで気軽に実装する事はできません。なぜならば、ネットで検索すれば同様の事象の報告が多数上がっているので色々な情報が得られると思いますが(そして決め手はないことも)、ファイル更新のタイミングなどがファイルを更新するアプリに依存するからです。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -