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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.89661 の関連記事表示

<< 0 >>
■89661  Re[9]: フォルダを監視してCSVを自動読み込み
□投稿者/ 774RR -(2018/12/13(Thu) 13:10:12)
    dobon さんとこのサンプルは FileSystemWatcher を「自前のコードで使う」ためのもので
    こんなプロパティがありますよ、こうやって使うことができますよ Dispose が必要っすよ
    ってなあたりを目に見える形で示すのが目的。
    (そうでないとサンプルとして役に立たない)
    だから「手で書いてあるコード」がやたらと多くて難しく見えるっす。
    
    既にアドバイスある通りデザイナで FileSystemWatcher を配置すれば、デザイナ画面だけで
    - Path や EnableRaisingEvents の初期値が設定できて、
    - イベントハンドラもダブルクリックだけで作ってくれて、
    - ついでに SynchronizingObject の設定も忘れずに行ってくれて、
    手書きするコードなんてほとんどないっす。
    
    デザイナで fileSystemWatcher1 btnStart btnStop を配置して、
    デザイナで各部品のプロパティ・イベントを適切に設定すると、
    Form1.cs で手書きしなきゃならないのは各ハンドラで1行だけになって、こんな感じ
    
    using System.Diagnostics; // は手書き
    namespace Watch
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void fileSystemWatcher1_Changed(object sender, System.IO.FileSystemEventArgs e)
            {
                Debug.WriteLine("Change " + e.FullPath);
            }
    
            private void fileSystemWatcher1_Created(object sender, System.IO.FileSystemEventArgs e)
            {
                Debug.WriteLine("Create " + e.FullPath);
            }
    
            private void fileSystemWatcher1_Deleted(object sender, System.IO.FileSystemEventArgs e)
            {
                Debug.WriteLine("Delete " + e.FullPath);
            }
    
            private void fileSystemWatcher1_Renamed(object sender, System.IO.RenamedEventArgs e)
            {
                Debug.WriteLine("Rename " + e.FullPath);
            }
    
            private void btnStart_Click(object sender, EventArgs e)
            {
                fileSystemWatcher1.EnableRaisingEvents = true;
            }
    
            private void btnStop_Click(object sender, EventArgs e)
            {
                fileSystemWatcher1.EnableRaisingEvents = false;
            }
        }
    }
    
    ね、5分もかからないでしょ。
    
    デザイナ画面でどんな操作をしないといけないかは掲示板で説明するには面倒すぎるのでパス。
    普通にデザイナを使いこなせるなら簡単そのもの。
    
記事No.89631 のレス /過去ログ154より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -