我正在使用这个http://www.codeproject.com/Articles/31944/Implementing-a-TextReader-to-extract-various-files并且它大部分都在工作。
我编写了这个测试来检查过滤器是否会按预期从字节数组中读取。
private const string ExpectedText = "This is a test!";
[Test]
public void FilterReader_RtfBytes_TextMatch()
{
var bytes = File.ReadAllBytes(@"Test Documents\DocTest.rtf");
var reader = new FilterReader(bytes, ".rtf");
reader.Init();
var actualText = reader.ReadToEnd();
StringAssert.Contains(ExpectedText, actualText);
}
测试失败并出现ErrorCode : FILTER_E_ACCESS,当我给它文件名时它工作正常。
new FilterReader(@"Test Documents\DocTest.rtf", ".rtf"); <-- works
我很困惑为什么会这样。我查看了代码,似乎是 rtf filter dll 返回了错误。这更令人费解。
它适用于其他文件类型,例如;.doc、.docx、.pdf