c# - TextReader Read 和 ReadToEnd 挂起而没有抛出异常

标签 c# ifilter

有没有办法知道在调用 TextReader.Read 或 TextReader.ReadToEnd 调用之前会挂起而不抛出异常?


try
{
 using (var filterReader = new EPocalipse.IFilter.FilterReader(tempFileName))
 {
  mediaContent = filterReader.ReadToEnd();
 }
}
catch (Exception e)
{
 Log.Error("DealerPortalIndex Error on file: " + tempFileName, e, this);
 mediaContent = string.Empty;
}

filterReader.ReadToEnd() 挂起并且从不在某个 .xls 文件(可能更多文件)上抛出异常

我也尝试过使用 filterReader.Read(char{}, int, int) 读取 block 并遇到同样的问题。

最佳答案

(您在代码中使用了 textreader,但该示例使用的是 EPocalips IFilter 模块。)

我认为这是 EPocalipse IFilter 中的错误。我不知道他们的代码是如何更新的,但我记得几年前我在使用 IFilters 和使用 EPocalipse 代码时有同样的效果。

您应该在调试器中运行它并分解代码以查看它卡在 EPocalipse 库中的什么位置。它很可能陷入循环。

[编辑] 我找到了旧的更新代码并将其放在 skydrive ( Epocalipse.IFilter.zip ) 上。看看它是否解决了您的问题。它可以检测无限 IFilter 解析循环,以及带有锁定单元格的 excel 文件。

关于c# - TextReader Read 和 ReadToEnd 挂起而没有抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1883915/

相关文章:

c# - C# 中字符串的 LZW 压缩

c# - 在 C# 中捕获按键

c# - DataGridView - 如何仅为单个列设置货币格式

c# - 具有相同名称方法的部分类

c# - 在 C# 中使用 IFilter 并从数据库而不是文件系统中检索文件

c# - 库 IFilter 的问题

c# - 使用 c# 或 c++ 的分水岭

windows - 如何在 WiX 片段中获得编辑注册表 CLSID 的提升权限

sharepoint - IFilter dll 适用于 Windows 桌面搜索,但不适用于 SharePoint 2007

pdf - 如何在MSSQL Server 2017中使用Adobe iFilter 11