2017-01-30 84 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