我在 C# 中使用 IPersistFile 加载文件,然后将其作为 IFilter 读取:
IFilter filter = LoadIFilter (fileextension);
IPersistFile persistFile = (filter as IPersistFile);
if (persistFile != null) {
persistFile.Load (fileName, 0);
IFILTER_FLAGS flags;
IFILTER_INIT iflags = IFILTER_INIT.FILTER_OWNED_VALUE_OK;
if (filter.Init (iflags, 0, IntPtr.Zero, out flags) == IFilterReturnCode.S_OK) {
return filter; // will be read using GetChunk/GetText
}
}
这工作正常。
但是,我想从内存而不是磁盘路径加载文件内容。那可能吗?IPersistFile 接口除了提供路径字符串之外没有显示任何其他方式,因此似乎既不能使用内存映射文件也不能使用字节数组。