如何检查单词模板文件。可以使用扩展名.dot或.dotx进行检查。 但是,如果用户将.txt更改为.dot。它如何识别?检查单词模板文件
检查单词模板文件
回答
要检查DOTX文件(这实际上是一个压缩文件),检查标头:
0000000: 504b 0304 1400 0000 0800 95a1 3435 4a07 PK..........45J.
前四个字节被量0x050 0x4b 0x03时0×04。这将演示一个文件是否为zip文件(因此不一定是dotx),如果您想进一步检查是否需要解压缩整个缓冲区并解析生成的XML。
要检查点文件(前2007年),检查标题:
0000000: d0cf 11e0 a1b1 1ae1 0000 0000 0000 0000 ................
前八个字节0xd0 0xcf为0x11 0xe0的0xa1 0xb1 0X1A 0xe1
所以对于这两种情况下,打开文件以二进制模式读取前八个字节并进行比较。
使用整个签名是有意义的,其中4个字节用于拉链,8个用于点。 – 2009-05-25 09:25:41
一个.DOTX文件只是一个ZIP文件,所以你可以检查它是否以“PK”(拉链头开始),那么您需要完全解压缩文件并检查内容是否是有效的Word模板。
你可以给它一些代码吗? – Sauron 2009-05-25 06:15:55
根据http://www.garykessler.net/library/file_sigs.html,点文件(等等)的完整签名是:
D0 CF 11 E0 A1 B1 1A E1
所以,下面是一些代码开始。它适用于.dot,但如果你想检查.dotx,你可以实现类似的代码。这并不能保证它是一个有效的点,所以你仍然需要在以后合理地处理错误。
// Use this as a class field.
private static readonly byte[] DOT_SIGNATURE = new byte[]{0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1};
后来,当你真正拥有的流:
bool isDot = true;
Stream dotStream = ...
byte[] firstBytes = new byte[DOT_SIGNATURE.Length];
int totalRead = 0, curRead;
while(totalRead < DOT_SIGNATURE.Length)
{
curRead = dotStream.Read(firstBytes, totalRead, DOT_SIGNATURE.Length - totalRead);
if(curRead == 0)
{
isDot = false;
break; // Premature end of stream;
}
totalRead += curRead;
}
if(isDot)
{
for(int i = 0; isDot && i < DOT_SIGNATURE.Length; i++)
{
// If isDot becomes false, arrays are not equal and we break out.
isDot = (firstBytes[i] == DOT_SIGNATURE[i]);
}
}
dotStream.Seek(0, SeekOrigin.Begin);
- 1. Django模板检查条件
- 2. 检查单词串
- 3. 查找单词的文件,检查它们是否回文
- 4. 检查多个单词
- 5. 使用preg_match检查单词
- 6. 检查词典中的单词列表
- 7. 检查,如果单词词典[R
- 8. 检查文件2中是否存在来自file1的单词
- 9. 如何检查文件夹中的多个单词
- 10. 查找单词并用文件中的单词替换
- 11. 模板类型检查C++
- 12. 检查模板参数
- 13. 如何检查列模板
- 14. 删除CRM 2016中的单词模板
- 15. C#使用OpenXml填充单词模板
- 16. 如何显示在模板上载文件返回错误后检查表单
- 17. 使用查询模板获取确切的单词OpenSearchServer
- 18. 检查.txt文件的文件夹是否包含列表框中的单词
- 19. 检查Django模板中是否有关联的文件属性
- 20. Cakephp:检查模板文件是否存在?
- 21. 如何从T4模板(tt)文件检查标识列?
- 22. Python:在文本中检查一个单词,但最后一个单词不检查
- 23. 用于检查文本中某些单词的SQL查询
- 24. 检查一个单词后面是否有单词(NSSTRING)
- 25. 使VBScript检查文件名称中包含某个单词的文件,然后查找并删除该文件
- 26. 检查谓词
- 27. 词典检查
- 28. 基于单词模板在asp.net中创建word文档
- 29. Python - 在文本文件中查找单词列表的单词频率
- 30. 从文本文件审查单词并创建新文件
您需要澄清的问题。您是否在问如何使用C#通过查看文件来确定文件是否是单词模板? – 2009-05-25 06:10:02
是汤普森先生。我需要它使用C#编码。 – Sauron 2009-05-25 06:11:38