2014-01-21 90 views
2

即時編寫一個小項目,即打開文件或快捷方式。在過程中,我發現問題。Java查找文件類型

問題很簡單。 我怎樣才能得到不同的btw文件或快捷方式?我應該使用和搜索什麼樣的java命令?

if (fileIsShortcut) { 
    return variable1; 
} else { 
    return variable2; 
} 

我希望你明白我的問題。

+0

這取決於你所說的「捷徑」的意思 - 我們在談論的Windows快捷方式(這只是普通的'.lnk'文件),Mac查找別名或POSIX風格的符號鏈接? –

+0

windows快捷鍵 – Macas

+0

對於Java而言,Windows快捷方式只是一個普通文件,其名稱恰好以'.lnk'結尾,因此如果您只關心某個特定文件是否爲快捷方式,那麼只需檢查名稱即可。如果你需要確定什麼捷徑指向_to_,那麼我不知道有任何純粹的Java方法來做到這一點。 [這個問題](http://stackoverflow.com/q/3995097/592139)討論了一些可能對此有幫助的本地橋接庫。 –

回答

0

使用此代碼

public static boolean isSymlink(File file) throws IOException { 
    if (file == null) 
    throw new NullPointerException("File must not be null"); 
    File canon; 
    if (file.getParent() == null) { 
    canon = file; 
    } else { 
    File canonDir = file.getParentFile().getCanonicalFile(); 
    canon = new File(canonDir, file.getName()); 
    } 
    return !canon.getCanonicalFile().equals(canon.getAbsoluteFile()); 
} 
+0

不知何故,它無法找到.lnk結束。該布爾返回false。 – Macas

+0

查看編輯答案 – Dima

+0

this.test = new File(「testSh.exe - Shortcut」); isSh = isSymlink(this.test); 仍然返回false; – Macas