プログラムでWordファイルの内容を開き、読み取るプロシージャがあります。手順にかかる時間は明らかに文書のサイズに比例しますが、約8分で平均100件の文書を読むことができます。時折、私は次のWordのエラーを取得:Word文書をループする
The file is in use by another application or user. (C:...\Templates\Normal.dotm). This error is commonly encountered when a read lock is set on the file that you are attempting to open.
は、その後の手順は、Word.exeプロセスおよびタスクマネージャの無限の数が急速にいっぱいに呼び出してしまいます。
Q)次のファイルを読むために新しいWordプロセスを起動する前に、手順を改善してどのように待つことができますか?今は、前のファイルを読むのにかかる時間に依存しているようです。 - ありがとう
private void readWordDoc(bool reportMode, string file)
{
try
{
Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application();
object miss = System.Reflection.Missing.Value;
object path = @file;
object readOnly = true;
Microsoft.Office.Interop.Word.Document docs = word.Documents.Open(ref path, ref miss, ref readOnly, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss);
string totaltext = "";
for (int i = 0; i < docs.Paragraphs.Count; i++)
{
totaltext += "\n" + docs.Paragraphs[i + 1].Range.Text.ToString();
}
docs.Close();
word.Quit();
if (!reportMode)
{
rtxtDocViewer.Text = totaltext;
}
if (reportMode)
{
writeReport(totaltext, file);
}
}
catch (Exception ex)
{
MessageBox.Show("Error loading doc. " + ex.Message);
}
}
あなたはOpenXMLを検討しましたか?これにより、単語を開いてタスクマネージャを満たす必要がなくなります。 –
いいえ、でも見ていきます....ありがとう –