ファイルサイズの変更を監視するプログラムを作成する必要があります。私はすでにシンプルなWindowsサービスとファイルシステムウォッチャーを作ったので、私は今コンセプトに慣れています。また、ファイルサイズを確認するコードを作成しました(フォームボタンで作成しましたが、まだファイルシステムウォッチャーに実装していません)。ファイルサイズを監視するファイルウォッチャーを持つWindowsサービスを作成するにはどうすればよいですか?ファイルシステムウォッチャーをWindowsサービスの中に入れ、OnStartメソッド経由でウォッチャーを呼び出す必要がありますか?C#のFileSystemWatcherを使用したWindowsサービス
答えて
ウィンドウのサービスを作成している場合は、プログラムでそれを行うことができます。私は通常、フォームを自分のサービスから外し、コミュニケーションのために別のインターフェースを作ります。現在、FileSystemWatcherにはサイズだけを監視するイベントはありません。そのため、FileSystemWatcher.Changedと結びついたメソッドを作成して、既存のファイルの変更を確認する必要があります。 OnStartメソッドでコントロールを宣言して初期化し、イベントを連結します。 OnStopメソッドでクリーンアップコードを実行します。それはこのようなものになります。
protected override void OnStart(string[] args)
{
FileSystemWatcher Watcher = new FileSystemWatcher("PATH HERE");
Watcher.EnableRaisingEvents = true;
Watcher.Changed += new FileSystemEventHandler(Watcher_Changed);
}
// This event is raised when a file is changed
private void Watcher_Changed(object sender, FileSystemEventArgs e)
{
// your code here
}
をまたFileSystemWatcherは、単一のファイルに対して複数のイベントをオフに起動しますので、あなたはそれを回避するためのパターンのための時計をデバッグしているとき、注意してください。
あなたは、単にイベントを処理次に
EnableRaisingEvents = true;
を設定することにより、OnStartメソッドの方法であなたのfilesystemwatcherオブジェクトを有効にすることができます。それはそれを行う必要があります。あなたは
上
myWatcher.Changed += new FileSystemHandler(FSWatcherTest_Changed);
private void FSWatcherTest_Changed(object sender,
System.IO.FileSystemEventArgs e)
{
//code here for newly changed file or directory
}
そしてそうのように変更されたものを処理するためのデリゲートを作成することができます
デフォルト値は本当でしょう – Peru
たぶん。 [MSDN](http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.enableraisingevents.aspx) - コンポーネントが有効な場合はtrue、それ以外の場合はfalse、既定値はfalseです。 Visual Studio 2005でデザイナのコンポーネントを使用している場合、デフォルトはtrueです。 " –
私はこの記事http://www.codeproject.com/Articles/18521/How-to-implement-a-simple-filewatcher-Windows-serv
を読むためにあなたをお勧めします。また、Windowsサービスで、このデリゲートon_start
を持っています
- 1. C#を使用してWindowsサービス(C#で記述)を使用
- 2. スレッド:C#を使用した.NET Windowsサービスのメインスレッドへのコール
- 3. installshieldを使用したWindowsサービスのインストール
- 4. C#を使用したWindowsサービスとパフォーマンス情報
- 5. WMIを使用したWindowsサービス
- 6. VS2010を使用したアンマネージドWindowsサービス
- 7. Windowsサービス用のデザインパターン - C#
- 8. C#のコンソールアプリケーション用Windowsサービス
- 9. Windowsサービスから作成されたファイルでFileSystemWatcherが動作しない
- 10. クライアント/サーバ(サービス)C#Windowsサービス用の通信
- 11. FileSystemWatcherとTimerを.Net 2.0 Windowsサービスに追加
- 12. C#リモートマシンのFileSystemWatcher
- 13. FileSystemWatcherを使用してC#をフォローする
- 14. C#PureMVCフレームワークを使用したWebサービス
- 15. C++を使用したWebサービス
- 16. WCFサービスを使用したFacebook C#SDK
- 17. Windowsサービスを使用してアプリケーションをポップアップする方法C#
- 18. C#のWindowsサービス
- 19. Ubuntuを使用したC#windowsアプリケーション
- 20. Windowsフォームアプリケーションを使用したC#ソケットサーバー
- 21. C#/ Windowsアプリケーションを使用したERPインテグレーション
- 22. Windows VistaでC#を使用したPrintTestPage
- 23. C#:filesystemwatcher class
- 24. C#ExecuteCommandと停止したWindowsサービス
- 25. C#でSSL(https)を使用したWebサービスの使用
- 26. FileSystemWatcherを使用するWindowsフォームで子フォームを起動しない
- 27. c#WindowsサービスConsole.Writeln
- 28. Windowsサービス(C++)
- 29. Windowsサービス - C#
- 30. WindowsサービスのC#-WebRequest
サービスウィンドウのツールボックスから項目を追加しないでください。ありがとう!私はそれをできるだけ試してみる...それは本当に有用だった –
私はそれから離れていただろう。サービスを実行していると、Windowsはフォームの統合を不可能にするので、インストール後にサービスを構成して許可する必要があります。あなたの目だけが見るものなら、それはおそらく大きな問題ではありませんが、(セキュリティ上の理由から)そのような開発スタイルを避けることは良い習慣です。 –
更新:Windows VistaおよびWindows 7では、デスクトップ対話を許可するオプションが完全に削除されました。投稿時にこれを知らなかった。 –