Не могу загрузить файл с пробелами System.Io ошибка - PullRequest
0 голосов
/ 23 сентября 2018

обнаружил, что это явно ошибка пакета.работал нормально, используя пакет Nuget DocX

Я пытаюсь прочитать файл из папки и сохранить его как другое расширение.Как правильно справиться с этим?Я читаю эту папку и сталкиваюсь с путями к файлам, такими как:

C: \ Users \ xx \ Desktop_REPOS \ scraper \ Вопросы для чтения \ Неделя 1 \ 239523-1094170 - гггг - 24 августа 2017 г. 148 вечера -Краткий ответ Авг 21.docx

Ошибка в моем коде

FileLoadException: Не удалось загрузить файл или сборку 'System.IO.Packaging, Version= 4.0.2.0, Культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a '.Определение манифеста обнаруженной сборки не соответствует ссылке на сборку.(Исключение из HRESULT: 0x80131040)

Я пробовал решение из этого поста и получил эту ошибку

Система.IO.IOException: 'Неверный синтаксис имени файла, имени каталога или метки тома:' C: \ Users \ king \ Desktop_REPOS \ scraper \ scraper \ bin \ Debug \ netcoreapp2.1 \ "C: \ Users \ king \ Desktop_REPOS \scraper \ Вопросы для чтения \ Неделя 1 \ 239523-1094170 - гггг - 24 августа 2017 г. 148 вечера - короткий ответ 21 августа .docx "'"

Mycode Пример кода, который я использовал

foreach (string path in Directory.EnumerateFiles(@"C:\Users\xx\Desktop\_REPOS\scraper\Reading Questions\Week 1", "*.*", SearchOption.AllDirectories)
.Where(s => s.EndsWith(".pdf") || s.EndsWith(".docx")))
{
        FileToTxt(path);
        //FileToTxt(AddQuotesIfRequired(path));
        Console.WriteLine("converted: " + Path.GetFileName(path));
}

public static void FileToTxt(string filepath)
{
    //Install-Package sautinsoft.document
    string textFilePath = Path.ChangeExtension(filepath, ".txt");
    DocumentCore docx = DocumentCore.Load(filepath); ////////---ERROR HERE
    docx.Save(textFilePath, SaveOptions.TxtDefault);
}

1 Ответ

0 голосов
/ 23 сентября 2018

Я получил подтверждение, что это была ошибка пакета, и переключился на использование DocX

Это было мое окончательное рабочее решение:

    public static bool FileToTxt(string filepath)
    {
        try { 
        //Install-Package DocX
        string textFilePath = Path.ChangeExtension(filepath, ".txt");
        DocX docx = DocX.Load(filepath);
        File.WriteAllText(textFilePath, docx.Text);
        }catch(Exception e)
        {
            Console.WriteLine($"{Path.GetFileName(filepath)} error: {e.Message}");
            return false;
        }
        return true;
    }
...