2011-04-21 57 views
4

我怎樣才能找出給定文件的MIME類型或內容類型? 我無法使用後綴,因爲該文件可能會被重命名。找出MIME類型和相關應用程序使用Qt

可能增加將他們歸類爲JPG,GIF,PNG等是圖像文件,並且可以通過編輯應用程序,已在操作系統中設置打開。

預先感謝您。

回答

1

什麼平臺?在* nix上,你應該參考程序file是如何實現的,它基於一些啓發式方法,包括檢查文件的前幾個字節(許多文件格式以固定標題開頭,包括許多圖像格式)。

如果你在Windows中,* nix中file命令可能仍然是有益的,即使你不能直接重複使用它的代碼。在Windows API中也可能有一些更好的解決方案(我不是Windows程序員)。

+0

另見的超級用戶這樣一個問題:http://superuser.com/questions/274734/is-there-a-tool-that-c​​an-determine-the-file-type-by-containing-data – 2011-04-24 17:55:49

1

你不能,而不是從Qt內部。但是,如果您只想顯示具有正確應用程序的文件,則可以使用QDesktopServices::openUrl(),該文件包裝爲open(Windows/OSX)和xdg-open(Unix)。該URL也可能是本地文件(在這種情況下,使用QUrl::fromLocalFile()來構建URL)。

0

用於對圖像文件進行分類。對於Qt而言,僅用於圖像文件。

QByteArray imageFormat = QImageReader::imageFormat(fileName); //Where fileName - path to your file 

進一步映射到的imageformat MIME類型不complicable

0

它看起來並不像Qt的提供這種能力呢。但是,您可能需要查看libmagic庫,它可以執行file和其他類似命令所做的操作。假設庫被正確維護,它將隨着時間的流逝而包含新的MIME類型。從我可以告訴它是文件工具套件的一部分。在Debian系統下執行如下操作:

sudo apt-get install libmagic-dev 

獲取開發庫並使用#include來使用它。

相關問題