如何檢查單詞模板文件。可以使用擴展名.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