1

メディア コンテンツをクライアント システムに配信 (インターネットからダウンロード) しており、メディア ファイルがオペレーターによって開かれた (および表示された) かどうかを確認したいと考えています。ファイル システム ウォッチャー (C# 3.5) を使用して、ファイルの最終アクセス時刻を確認し (そのため、メディア ファイルが再生されるたびにイベントを取得する必要があります)、確認を送信します。

ここで、Windows 7 マシンのレジストリで最終アクセス時刻を有効にして、システムを再起動しました。ファイル システム ウォッチャーは、ディレクトリが開かれたときにイベントを発生させますが、メディアの再生時にはイベントを発生させません。

これが私のコードです:

private FileSystemWatcher fsWatcher = null;
private static Object objLock = new Object();

private void StartAccessWatcher(string _folderPath)
{
  fsWatcher = new FileSystemWatcher(_folderPath, "*.*");
  fsWatcher.Changed += new FileSystemEventHandler(fsWatcher_Changed);
  fsWatcher.IncludeSubdirectories = true;
  fsWatcher.NotifyFilter = NotifyFilters.LastAccess;
  fsWatcher.EnableRaisingEvents = true;
}

private void fsWatcher_Changed(object sender, FileSystemEventArgs e)
{
  lock (objLock)
  {
    fsWatcher.EnableRaisingEvents = false;
    DisplayMessage(string.Concat(e.ChangeType, "  ", e.FullPath));
    fsWatcher.EnableRaisingEvents = true;
  }
}

private void btn_StartWatcher_Click(object sender, EventArgs e)
{
  StartAccessWatcher(@"E:\Surewaves\Media-Store\MP1 Videos");
}

ここからコード サンプルをダウンロードすることもできます。

どうすればそれを達成できるか教えてください。最終アクセス時刻を取得する必要があります (ビデオ、オーディオ、画像、または .swf ファイルが任意のプレーヤーによって再生されたとき)。

4

2 に答える 2

0

FileSystemWatcherは、指定されたディレクトリの変更を監視するために使用されます。指定したディレクトリのファイルとサブディレクトリの変更を監視できます。あなたの場合、メディアファイルに変更はありません。FileSystemWatcherクラスを拡張し、メディアファイルを読み取るための新しいイベントを作成してから、それらのイベントを発生させることをお勧めします。

于 2012-02-11T11:33:37.713 に答える