Поиск do c и docx для массива слов и возвращение имени файла - PullRequest
2 голосов
/ 29 апреля 2020

Я использую Visual Studio и пытаюсь перебрать oop через 22 000+ слов документов для поиска определенных c слов - код работает, но он очень медленный, это то, что у меня есть до сих пор (любой идеи, как я могу ускорить это?):

string docPath = "V:\\Myfolder";
        string writeFile = "N:\\Personal\\DB Development\\SensitivePatients.txt";
        long x = 0;
        string[] words =
        {
                "ige",
                "itu",
                "cop",
                "home",
                "ild",

        };

        foreach (var myfile in Directory.EnumerateFiles(docPath, "*.doc*"))
        {
            Console.WriteLine(x);
            x += 1;
            Microsoft.Office.Interop.Word.Application application = new Microsoft.Office.Interop.Word.Application();
            Document document = application.Documents.Open(myfile, ReadOnly: true);

            // Loop through all words in the document.
            int count = document.Words.Count;
            for (int i = 1; i <= count; i++)
            {
                foreach (string w in words)
                {
                    if (document.Words[i].Text.IndexOf(w, 0, StringComparison.CurrentCultureIgnoreCase) != -1)
                    {
                        using (StreamWriter streamWriter = new StreamWriter(writeFile, true))
                        {
                            streamWriter.WriteLine(myfile);
                            streamWriter.WriteLine(document.Words[i].Text);
                        }
                    }
                };
            }
            // Close word.
            application.Quit();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...