我們有一些遺留的代碼有一些奇怪的習慣做法。你不能真正相信文件擴展名來知道它是什麼類型的文件。一個很好的例子就是jpgs實際上是tifs。如何確定System.Drawing.Bitmap在嘗試打開之前是否可以打開文件?
有可能是其他複雜的,所以我不能指望什麼,但文件的數據本身告訴我,如果可以處理圖像。現在我已經將它封裝在try/catch中,但我不喜歡使用異常來控制流量。
try
{
using (Bitmap current = (Bitmap)Bitmap.FromFile(file))
{
// Use current
}
}
catch
{
// Must not be an image file
}
我們無法更改遺留代碼以使其有意義。有沒有比這更好的方式知道file
是一個圖像?
嗯......我認爲問題的描述表明這是不可能的。 – DonBoitnott