使用c#将Docx转换为字符串的轻量级方法
本文关键字:字符串 轻量级 方法 转换 Docx 使用 | 更新日期: 2024-09-20 21:30:12
我编写了一个搜索程序来在庞大的文档集合中查找字符串
我不需要编辑或查看,我只需要从单词Doc(docx)中提取文本作为字符串。什么是最简单/最轻的选项?
我想做的是慢慢开始添加不同文件类型的模块
如果文件以docx字符串结尾,则保持=DocxExtract(文件)或类似的内容
string[] files = Directory.GetFiles(textBox2.Text, "*.*", SearchOption.AllDirectories);
foreach (string file in files)
{
try
{
foreach (string line in File.ReadLines(file))
{
if (line.Contains(textBox3.Text))
{
textBox1.AppendText(file+"'r'n");
break;
}
}
}
catch
{
}
}
这是我迄今为止提出的似乎可以使用的方法
我在这里使用dot-netzip dll将我需要的一个文件提取为流,然后将流转换为字符串。
这很粗糙,如果你有什么建议,请告诉我(如果有更好的答案,我会等一天左右来奖励积分)
private bool FindInDocx(string file,string search)
{
var ms = new MemoryStream();
using (ZipFile zip = ZipFile.Read(file))
{
ZipEntry a = zip[@"word'document.xml"];
a.Extract(ms);
}
ms.Position = 0;
var sr = new StreamReader(ms);
var myStr = sr.ReadToEnd();
return myStr.Contains(search);
}