使用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
    { 
    }
}

使用c#将Docx转换为字符串的轻量级方法

这是我迄今为止提出的似乎可以使用的方法

我在这里使用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);
        }