2012-05-09 66 views
3

如何找到文件擴展名,如果文件已被重命名?有沒有可用的工具?如何找到文件擴展名,如果文件已被重命名?

例如:我有一個文件「1.doc」;我希望大家都知道這是一個我剛剛改名爲「1.txt」的Word文檔。但該文件最初是一個Word文檔;我怎樣才能得到原始的文件擴展名?

回答

1

你不能得到以前的文件擴展名。你所能做的只是查看文件的內容,並試圖猜測它是什麼。

大多數(很多?)文件格式都以一個「魔術」值開頭,該值用於標識文件格式,但這種方法不可能100%準確。

正如@AaronDigulla在評論中提到的那樣,有些庫可以幫助你完成「猜測」任務,並且that question的答案包含指向某些這樣的庫的指針。重命名它保存在一個名爲ORIGINALNAME ......一個單獨的字符串,因爲當你改變字符串的名稱,分配的內存被改變,那裏有沒有回去或撤消

+0

看到這個問題如何按內容檢查文件:http://stackoverflow.com/questions/51438/getting-a-files-mime-type-in​​-java –

0

,以前的名稱不會保留。

至於從它的內容自動猜測文件的格式,看看Unix的file實用程序。安裝在我的Ubuntu盒子上的版本列出了它所知道的「魔術」簽名中的Microsoft Word。

1

一旦你重命名文件之前

0

考慮從JavaBeans Activation Framework中使用javax.activation.FileDataSource。特別使用getContentType()方法。

+0

此方法不用於獲取文件擴展名。 – abksrv

+0

這正是我正在尋找的。 非常感謝。 –

相關問題