2017-01-30 86 views
2

我需要监视何时执行文件(* .wav)。
我知道filesystemwatcher类。然而,这个类是否在文件被使用时通知?我也遇到了Monitor when an exe is launched。虽然我意识到这与一个EXE有关,有没有办法通知一个WAV文件已被执行?监视文件正在使用中

+0

无论何时执行媒体播放器,您都可以追踪。因为文档不能写入.docx文件。媒体播放器将执行'.wav'格式。我认为这可以满足您的要求。如果没有,请在这里留言并缩小您的问题。 –

回答

0

不,您不能在打开不可执行文件(如mp3,wav,txt等)时收到事件。
但如果文件被打开写现在居然可以检查...

static void Main(string[] args) 
{ 
    using (BackgroundWorker bw = new BackgroundWorker()) 
    { 
     bw.DoWork += Bw_DoWork; 
     bw.RunWorkerAsync(); 
    } 
    Console.WriteLine("Press Q to exit"); 
    while (Console.ReadKey(true).Key!=ConsoleKey.Q){} 
} 

private static bool[] opened; 

private static void Bw_DoWork(object sender, DoWorkEventArgs e) 
{ 
    var files = Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory, "*.mp3"); 
    opened = new bool[files.Length]; 

    while (true) 
     for (int i = 0; i < files.Length; i++) 
      try 
      { 
       using (var fs = File.Open(files[i], FileMode.Open, FileAccess.Read, FileShare.None)) 
        opened[i] = false; 
      } 
      catch{ opened[i] = true; } 
} 

附:我知道这很难看:D

+0

嘿它可能很丑,但它可能是解决方案的一部分 – Eminem