无法关闭和删除我检查是否已损坏的打开文件(.docx)

时间:2019-03-05 11:11:20

标签: c# asp.net .net visual-studio docx

我遇到的问题是关于.docx文档的验证,以验证我正在使用下一种方法:

 public static bool ValidateWordDocument(string filepath)
    {
        WordprocessingDocument wordprocessingDocument;
        try
        {
            wordprocessingDocument = WordprocessingDocument.Open(filepath, true);
            wordprocessingDocument.Close();
            return true;
        }
        catch (Exception e)
        {
            _logger.LogError($"El archivo {filepath} esta corrupto o se trata de un archivo ");
            return false;
        }
    }

但是,当它启动异常时(因为文件已损坏且无法打开),将使文件处于打开状态,并且无法在catch中关闭该文件,因为它与WordprocessingDocument“实例”无关。

然后,当我不得不删除文件时,我不得不验证我无法执行该操作,因为该文件已由另一个进程打开: Error Deleting

谢谢。

1 个答案:

答案 0 :(得分:1)

也许将其更改为类似的内容会有所帮助:

  try
    {
        wordprocessingDocument = WordprocessingDocument.Open(filepath, true);
        return true;
    }
    catch (Exception e)
    {
        _logger.LogError($"El archivo {filepath} esta corrupto o se trata de un archivo ");
        return false;
    }
finally{
 wordprocessingDocument.Close();
}