2012-04-26 4 views
1

を変更しました。Wordを起動プロセスが、ファイル名には、私が「MyDoc.docx」</p> <p>私は、このファイルを使用してWordのプロセスを開始するという名前の一時フォルダにファイルを作成するC#では

FileSystemWatcherを使用すると、ファイルの変更を監視し、Wordプロセスがいつ終了するかを監視します。

私は彼の文書に加えられた変更をお読みになりたいと思います。

ただし、Wordは私が提供したものとは異なるファイル名を使用しています。これは、短い(8.3)ファイル名を使用しています。しかし、それは私が短いファイル名を計算するものを使用していない - それはWordがそれ自身の一時ファイル名を使用しているようだ。

ファイルが変更されたと判断するにはどうすればよいですか? Wordが使用しているファイルの名前を知るにはどうすればよいですか?

どのような考えですか?

ANSWER:

代わりの取り扱いは名称変更イベントを処理する必要がありますWordファイル、のイベントを変更しました。 Wordで文書が保存されると、一時ファイルが保存され、元のファイル名にコピーされます。

答えて

0

Wordファイルの変更されたイベントを処理する代わりに、名前が変更されたイベントを処理する必要があります。 Wordで文書が保存されると、一時ファイルが保存され、元のファイル名にコピーされます。

1

言葉はいつもに彼の一時ファイルを置く "C:ユーザーがアレックス\デスクトップ\ \"(Windows Server 2008の除く)をので、あなたがこの

var files = new DirectoryInfo(@"C:\Users\Alex\Desktop").GetFiles() 
.Where(arg => !(arg.Attributes.HasFlag(FileAttributes.Hidden) && arg.Extension == ".docx" && arg.Name.StartsWith("~$"))) 
.ToList(); 

EDIT

のようにそれらを見つけて試すことができますこれは見つけるために

 Process[] processes = Process.GetProcesses(); 
     int i = 0; 
     foreach (Process p in processes) 
     { 
      if (p.ProcessName.Contains("WinWord")) 
      { 
       try 
       { 
        ProcessModuleCollection modules = p.Modules; 
        for (int j = 0; j <= modules.Count - 1; j++) 
        { 
         string sFile = modules[j].FileName;//can be needed file 
        } 
       } 
       catch (Exception exception) 
       { 
        //MsgBox(("Error : " & exception.Message)) 
       } 
      } 
     }