こんにちは、少しのコードで Word ファイルを開いてプレーン テキストを取得する方法を知っています。しかし、私はこれから悪影響を及ぼしています。doc という単語がロックされ、ロックされているものの割り当てを解除する方法がわかりません。私が最終的に望むのは、UNCパスにあるファイルを開いて、他の誰かが開いているかどうかに関係なく、その一部を読み取り、そこから行を解析し、閉じ、何も保存しないか、ファイルをロックすることです。私が得ることができる最も近いのは、ファイルを開いて解析し、ロックすることですが、開いて閉じると(コードを実行している同じマシン)、魔法のようにロックが解除されます。
私は COM についてほとんど何も知らないので、しばらく探して Marshall オブジェクトについて何かを見つけ、それを追加しました。参照「ReadOnly: True」、「ReadOnly: False」のオンとオフを切り替えようとしました。足りないものがあると思うので、ここで質問しようと思いました。私は .NET 4.0 でコーディングしているので、Doc を開くのに面倒な obj = null、obj = null を渡す必要はありません。
public static string ReadWordDoc(string loc)
{
Word.Application wordApp = new Word.Application();
Word.Document Doc = wordApp.Documents.Open(loc, ReadOnly: true);
sb = "";
foreach (Word.Paragraph objParagraph in Doc.Paragraphs)
{
try
{
sb += objParagraph.Range.Text + "\n";
}
catch (Exception ex)
{
throw ex;
}
}
return sb;
Doc.Close(SaveChanges: false);
Marshal.ReleaseComObject(Doc);
wordApp.Quit(SaveChanges: false);
}