c#.net中通过关键字检索指定文件夹中的word文档
添加引用:COM下的Microsoft Word 11.0 Object Liabrary
private static object nullobj = System.Reflection.Missing.Value;
/// <summary>
/// search in a DOC file(查询DOC文件的内容)
/// </summary>
/// <param name="fileName"></param>
/// <param name="searchForText">要搜索的文本</param>
/// <param name="CaseSensitive">是否区分大小写</param>
/// <returns></returns>
public static bool SearchInDoc(string fileName,string searchForText,bool CaseSensitive)
{
bool Result = (searchForText.Length == 0);
object filename = fileName; //要打开的文档路径
object MissingValue=System.Reflection.Missing.Value;//Type.Missing;
object readOnly = false;
Microsoft.Office.Interop.Word.Application wp = null;
Microsoft.Office.Interop.Word.Document wd = null;
try
{
wp = new Microsoft.Office.Interop.Word.ApplicationClass();
wd = wp.Documents.Open(ref filename,ref MissingValue,
ref readOnly,ref MissingValue,
ref MissingValue,ref MissingValue,
ref MissingValue,ref MissingValue,
ref MissingValue,ref MissingValue,
ref MissingValue,ref MissingValue,
ref MissingValue,ref MissingValue,
ref MissingValue,ref MissingValue);
int i=0,iCount=0;
Microsoft.Office.Interop.Word.Find wfnd;
if (wd.Paragraphs != null && wd.Paragraphs.Count>0)
{
iCount = wd.Paragraphs.Count;
for(i=1;i<=iCount;i++)
{
wfnd=wd.Paragraphs[i].Range.Find;
wfnd.ClearFormatting();
wfnd.MatchCase = CaseSensitive;
wfnd.Text = searchForText;
if (wfnd.Execute(ref MissingValue,ref MissingValue,
ref MissingValue,ref MissingValue,
ref MissingValue,ref MissingValue,
ref MissingValue,ref MissingValue,
ref MissingValue,ref MissingValue,
ref MissingValue,ref MissingValue,
ref MissingValue,ref MissingValue,
ref MissingValue))
{
Result = true;
break;
}
}
}
}
catch(Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
if(wd != null)
{
wd.Close(ref nullobj,ref nullobj,ref nullobj);
System.Runtime.InteropServices.Marshal.ReleaseComObject(wd);
wd = null;
}
if(wp != null)
{
wp.Quit(ref nullobj,ref nullobj,ref nullobj);
System.Runtime.InteropServices.Marshal.ReleaseComObject(wp);
wp = null;
}
GC.Collect();
}
return Result;
}