重複の可能性:
Java 1.6 - シンボリック リンクの決定
私は2つのファイルを持っています:
/usr/local/sam/icc/tmp/indus_history.txt
/osp/psmf/service/indus/tmp/indus_history2.txt
ファイル 1 の親ディレクトリは、ファイル 2 の親ディレクトリへのシンボリック リンクです。
/usr/local/sam/icc/tmp/ --> /osp/psmf/service/indus/tmp/
さらに、「ファイル 1」は「ファイル 2」へのシンボリック リンクです。
indus_history.txt --> /osp/psmf/service/indus/tmp/indus_history2.txt
getAbsoluteFile() on "File 1" returns /usr/local/sam/icc/tmp/indus_history.txt
getCanonicalFile() on "File 1" returns /osp/psmf/service/indus/tmp/indus_history2.txt
正解です。
しかし、「ファイル 1」と「ファイル 2」の間のシンボリック リンクを削除し、/usr/local/sam/icc/tmp/ に物理的な「ファイル 1」を作成すると、結果は次のようになります。
getAbsoluteFile() on "File 1" returns /usr/local/sam/icc/tmp/indus_history.txt
getCanonicalFile() on "File 1" returns /osp/psmf/service/indus/tmp/indus_history.txt
「ファイル1」の親ディレクトリがシンボリックリンクになっているためです。
では、「ファイル 1」が物理ファイルであるか、その親ディレクトリ (つまり、/usr/local/sam/icc/tmp/) 内のシンボリック リンクであるかを確認するにはどうすればよいでしょうか ???
注: JAVA 1.7 では簡単なことはわかっていますが、以前のバージョンの JAVA ではどうすればよいでしょうか?