ホームページ >Java >&#&チュートリアル >ここでは、「チャレンジ」と質問形式でのタイトルのオプションをいくつか示します。 * Java 1.6 でシンボリック リンクを確実に検出するにはどうすればよいですか? * シンボリックリンクですか? Java 1.6 Direct の信頼できる方法
Java 1.6 でのシンボリック リンクの確認
UNIX システムで動作する DirectoryWalker クラスのコンテキストで、ファイル インスタンスがシンボリック リンクであるかどうかを確認するディレクトリへのリンクは難しい場合があります。提供された条件:
if (file.getAbsolutePath().equals(file.getCanonicalPath()))
は指標として機能しますが、完全に信頼できるわけではない可能性があります。
代替アプローチ
より信頼性の高い方法Apache Commons で採用されている手法では、親ディレクトリの正規パスとファイル自体の正規パスを比較します。
public static boolean isSymlink(File file) throws IOException { if (file.getParent() == null) { canon = file; } else { File canonDir = file.getParentFile().getCanonicalFile(); canon = new File(canonDir, file.getName()); } return !canon.getCanonicalFile().equals(canon.getAbsoluteFile()); }
ここで、正規パスと絶対パスの不一致は、シンボリック パスが存在することを示しています。リンク。ただし、このアルゴリズムは次の前提に依存していることに注意することが重要です:
これらの仮定が当てはまらない場合、アルゴリズムはシンボリック リンクの存在を正確に判断できない可能性があります。
以上がここでは、「チャレンジ」と質問形式でのタイトルのオプションをいくつか示します。 * Java 1.6 でシンボリック リンクを確実に検出するにはどうすればよいですか? * シンボリックリンクですか? Java 1.6 Direct の信頼できる方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。