Чтение файла из SharePoint не возвращает правильное значение - PullRequest
0 голосов
/ 03 июня 2019

Я использую приведенный ниже код для чтения файла с sharepoint 2019, и возвращаемые значения не являются строковыми.Пример возвращаемых значений: 0 \ 0 \ 0 (\ u0001 \ 0 \ 0 \ u001e \ 0 \ 0 \ 0 \ 0 \ 0 \ 0

using (ClientContext clientContext = new ClientContext("http://sharepoint2019/sites/test/"))
        {
            KeywordQuery keywordQuery = new KeywordQuery(clientContext);
            keywordQuery.QueryText = "SharePoint";
            keywordQuery.EnablePhonetic = true;
            SearchExecutor searchExecutor = new SearchExecutor(clientContext);                
            ClientResult<ResultTableCollection> results = searchExecutor.ExecuteQuery(keywordQuery);
            clientContext.ExecuteQuery();
            foreach (var resultRow in results.Value[0].ResultRows)
            {
                Console.WriteLine("{0}: {1} ({2})", resultRow["Title"], resultRow["Path"], resultRow["Write"]);

                File file= clientContext.Web.GetFileByUrl(resultRow["Path"].ToString());
                var stream = file.OpenBinaryStream();
                clientContext.Load(file);
                clientContext.ExecuteQuery();

                FileInformation fileInformation = File.OpenBinaryDirect(clientContext, (string)file.ServerRelativeUrl);
                using (System.IO.StreamReader sr = new System.IO.StreamReader(fileInformation.Stream))
                {
                    // Read the stream to a string, and write the string to the console.
                   String line = sr.ReadToEnd();
                    Console.WriteLine(line);
                }


            }

        }

1 Ответ

1 голос
/ 03 июня 2019

Если вы читаете некоторые файлы, такие как Word (не текстовый файл), вам нужно использовать библиотеку Open Xml для чтения строки в Word, файловый поток не может вернуть реальную строку, как ожидалось:

Получить обычный текстовый документ Word с использованием Open XML (CSOpenXmlGetPlainText)

Открыть документ текстового редактора из потока (Open XML SDK)

...