什麼,我都做了,現在,它的工作原理是這樣的:OpenXML文檔,你怎麼知道哪個是哪個,當沒有extention
private string DetermineOpenXML(string file)
{
try
{
SpreadsheetDocument doc = SpreadsheetDocument.Open(file, false);
doc.Close();
return ".xslx";
}
catch
{
try
{
WordprocessingDocument doc = WordprocessingDocument.Open(file, false);
doc.Close();
return ".docx";
}
catch
{
try
{
PresentationDocument doc = PresentationDocument.Open(file, false);
doc.Close();
return ".pptx";
}
catch
{
return string.Empty;
}
}
}
}
我覺得必須有一個更好的辦法,看看有什麼這種文件不僅僅是試驗和錯誤。事情是,我正在研究一個小程序,它發現哪些文件擴展名文件應該有。我這樣做的原因是因爲我有一個數據庫中的文件,在這些文件中有時沒有擴展名,有時候擴展名不對。
我對這些文件所做的事情是,我發現所有OpenXML文檔都共享相同的文件簽名:「50 4B 03 04 14 00 06 00」,它接近於zip文件的簽名,而我也可以用zip程序打開OpenXML文件並查看其內容。也許這是我應該去的解決方案,我只是希望使用OpenXML SDK會更快/更容易,並且它擁有一個屬性或可以爲我檢查的屬性。
編輯: 我已經添加了答案,我仍然想看看是否有更好的解決方案,即使它適用於我當前的目的。它並沒有考慮到擴展應該是模板文件。
這是一個更好的方法來做到這一點。 – 2013-02-12 00:20:07
是啊,也更快,但不考慮它是否是一個模板文件,在我的情況下它並不重要,因爲這些文件現在至少會是,因爲這些文件將在正確的程序中打開,但對於那些可能最終會出現相同的情況,需要模板才能做更多工作。 – 2013-02-12 07:55:10
你有沒有找到比這更好的方法? – Jonah 2017-07-28 16:04:40