古詩詞大全網 - 成語解釋 - .net根據關鍵字搜索文件內容(office文件,文件存放磁盤上)

.net根據關鍵字搜索文件內容(office文件,文件存放磁盤上)

protected List<FileInfo> GetFilesByKey(string key)

{

//獲取C盤下Temp文件夾

DirectoryInfo dir = new DirectoryInfo(@"c:\Temp");

//定義符合條件的所有文件集合

List<FileInfo> files = new List<FileInfo>();

//循環該文件夾下所有文件

foreach (FileInfo file in dir.GetFiles())

{

//改文件為office文件

if (file.Extension == "eml" || file.Extension == "doc" || file.Extension == "xls" || file.Extension == "ppt")

{

//該文件名包含關鍵字

if (file.Name.IndexOf(key) != -1)

files.Add(file);

}

}

return files;

}

-----------------------------------------------------------------

改了下,壹般來說只支持DOC的文件,eml,xls,ppt格式的內容是不是包括關鍵字查不出,如果非要查處那些格式文件裏是不是包括關鍵字就再等待高手吧。

protected List<FileInfo> GetFilesByKey(string key)

{

//獲取C盤下Temp文件夾

DirectoryInfo dir = new DirectoryInfo(@"c:\Temp");

//定義符合條件的所有文件集合

List<FileInfo> files = new List<FileInfo>();

//循環該文件夾下所有文件

foreach (FileInfo file in dir.GetFiles())

{

//改文件為office文件

if (file.Extension == "eml" || file.Extension == "doc" || file.Extension == "xls" || file.Extension == "ppt")

{

//該文件名包含關鍵字

if (file.Name.IndexOf(key) != -1)

{

//讀取文件流

FileStream fs= file.OpenRead();

byte[] btContent = new byte[fs.Length];

fs.Read(btContent, 0, fs.Length);

//獲得文件內容

string content = System.Text.Encoding.GetEncoding("gb2312").GetString(btContent);

//內容中包含關鍵字

if (content.IndexOf(key) != -1)

{

files.Add(file);

}

}

}

}

return files;

}