Quantcast
Channel: プログラム の個人的なメモ
Viewing all articles
Browse latest Browse all 860

【C#】フォルダ / ファイル監視を実装するには... ~ FileSystemWatcher ~

$
0
0

■ フォルダ/ファイル監視を実装するには...

 * FileSystemWatcher を利用する

■ FileSystemWatcher

取得できるイベント

`イベント
`#
説明
01OnCreated作成
02OnDeleted削除
03OnRenamedリネーム
04OnChanged変更
05OnErrorエラー

■ サンプル

using System;
using System.IO;

namespace SampleDemo
{
  class Program
  {
    static void Main(string[] args)
    {
      FileSystemWatcher watcher = new FileSystemWatcher();

      watcher.Path = @"c:\temp";
      watcher.Filter = "*.txt";
      watcher.IncludeSubdirectories = true;
      watcher.NotifyFilter = NotifyFilters.FileName;
      watcher.Created += new FileSystemEventHandler(OnCreated);
      watcher.EnableRaisingEvents = true;

      Console.WriteLine("Start monitoring...");
      Console.Read();
    }

    private static void OnCreated(object source, FileSystemEventArgs fileSystemEvent)
    {
      Console.WriteLine("-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-");
      Console.WriteLine(fileSystemEvent.ChangeType.ToString());
      Console.WriteLine(fileSystemEvent.FullPath);
    }
  }
}

■ 問題点

http://d.hatena.ne.jp/eco31/20110116/1295112914
にも記載されているが
『ファイルやフォルダを操作したユーザが分からない』点。

補足

 * 「作成者=ファイル所有者」であれば、
    以下のサイトで書かれている『FileSecurityのGetOwner()で取得』できる
   => 削除した場合は、ファイルの自体がないし、「作成者=ファイル所有者」とは限らないし...
https://teratail.com/questions/59917


Viewing all articles
Browse latest Browse all 860

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>