无法使用空格System.Io错误装入文件

时间:2018-09-23 00:49:32

标签: c# path filepath text-formatting

发现这显然是程序包错误。使用Nuget软件包DocX可以很好地工作

我正在尝试从文件夹中读取文件,并将其另存为其他扩展名。处理此问题的正确方法是什么?我通读了文件夹,遇到了文件路径,例如:

  

C:\ Users \ xx \ Desktop_REPOS \ scraper \ Reading Questions \ Week 1 \ 239523-1094170-yyy-2017年8月24日148 PM-简短答案Aug 21.docx

我的代码错误

  

FileLoadException:无法加载文件或程序集'System.IO.Packaging,版本= 4.0.2.0,区域性=中性,PublicKeyToken = b03f5f7f11d50a3a'。找到的程序集的清单定义与程序集引用不匹配。 (来自HRESULT的异常:0x80131040)

我尝试了this post的解决方案,但收到此错误

  

System.IO.IOException:'文件名,目录名或卷标语法不正确:'C:\ Users \ king \ Desktop_REPOS \ scraper \ scraper \ bin \ Debug \ netcoreapp2.1 \“ C:\ Users \ king \ Desktop_REPOS \ scraper \ Reading Questions \ Week 1 \ 239523-1094170-yyy-2017年8月24日148 PM-简短回答Aug 21.docx“''

我的代码Code example I used

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 :(得分:0)

我最终确定这是一个程序包错误,并转而使用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;
    }