在Mono / Linux上是否有相当于IFilter的功能?

时间:2011-04-27 13:42:21

标签: c# .net windows mono ifilter

我正在将应用程序从.NET / Windows转换为mono / linux,但我找不到有关IFilters的任何信息。我知道用于Office的Microsoft IFilters,Adobe和FoxIt IFilters for PDF,但不知道它们是否适用于Linux和/或Mono,或者是否存在功能相同的东西(用于从专有表单中提取纯文本)

3 个答案:

答案 0 :(得分:4)

IFilter是本机Windows API,而不是.NET API。

在Linux上,您可以使用搜索索引器(如Beagle)中的过滤器。

答案 1 :(得分:1)

据我所知,IFiler技术仍在最近的应用中使用。在其原始设计(大约1996年或之前)中,这些是用C或C ++编写的COM对象。过去几年提供的大多数IFilter都无法在64位上运行。如果您在Windows之外构建应用程序,则可能需要创建加载并调用IFilter的代码。

任何想要使用IFilter的实现都需要有一些接口来加载并调用内存中的IFilter,将其指向一个文件并踢它以读取内容,然后再踢几次以从中提取文本结果内存缓冲区。使用IFilter的现代实现使用更高级的内存保护来在泄漏发生时刷新内存,在C编码中并不少见......在互联网上可以获得一些样本(从2003年左右或2005年左右),只要你尊重它们就可以工作旧式界面。

希望这有帮助。

答案 2 :(得分:0)

不确定这是否是您正在使用的,但根据MSDN IFilter(与索引服务相关)已过时。因此,如果它在Mono中重新实现,我会感到惊讶。

也就是说,许多 .NET程序集可以放入Mono应用程序而无需重新编译。虽然看起来第三方DLL的情况似乎比微软的情况更有可能,但可能值得一试,看看它是否适用于你的情况。

http://msdn.microsoft.com/en-us/library/ms691105(v=vs.85).aspx