我遇到的问题是关于.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
谢谢。
答案 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();
}