2009-12-05 28 views
3

有沒有一種簡單的方法來確定一個文件在C#中的擴展名是什麼?例如,如果我傳遞了「.txt」的文件擴展名,那麼它將返回「文本文檔」,或者如果我將它傳遞給「.pdf」,它將返回「Adobe Acrobat Reader」。我在「類型」列下看到了Windows資源管理器內置的這種行爲。有沒有辦法在C#中模仿這個?有沒有一種簡單的方法來確定一個文件在C#中的擴展名是什麼?

回答

-3

檢查註冊表;您可以從那裏獲取該數據

+0

這有點廣泛。如何關聯一些鏈接? –

+0

我認爲使用谷歌搜索c#「註冊表文件類型」不是布賴恩手術 – Pierreten

+7

雅,拼寫大腦也不是熱門科學:p –

4

如果你想獲得什麼樣的探險實際顯示並願意使用COM互運,你可以使用Shell.Application類用得到它最少量的代碼。如果您要添加引用,請瀏覽至將導入shell32的類型庫的X:\ windows \ system32 \ shell32.dll。然後只是使用代碼:

string GetFileType(string path) 
{ 
    Shell32.ShellClass shell = new Shell32.ShellClass(); 
    Shell32.Folder folder = shell.NameSpace(Path.GetDirectoryName(path)); 

    Shell32.FolderItem item = folder.ParseName(Path.GetFileName(path)); 
    return folder.GetDetailsOf(item, 2); 
}
+0

這似乎工作完美。這是否適用於所有版本的Windows? XP,Vista和Windows 7? – Icemanind

+0

它應該這樣做,COM對象已經存在很久了。但是我只有7個人親自嘗試過這些代碼。 – tyranid

相關問題