ホームページ  >  記事  >  Java  >  ここでは、「チャレンジ」と質問形式でのタイトルのオプションをいくつか示します。 * Java 1.6 でシンボリック リンクを確実に検出するにはどうすればよいですか? * シンボリックリンクですか? Java 1.6 Direct の信頼できる方法

ここでは、「チャレンジ」と質問形式でのタイトルのオプションをいくつか示します。 * Java 1.6 でシンボリック リンクを確実に検出するにはどうすればよいですか? * シンボリックリンクですか? Java 1.6 Direct の信頼できる方法

DDD
DDDオリジナル
2024-10-27 03:30:03407ブラウズ

Here are a few title options, playing on the

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。