「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Java 1.6 でファイルがシンボリック リンクであるかどうかを確実に判断するにはどうすればよいですか?

Java 1.6 でファイルがシンボリック リンクであるかどうかを確実に判断するにはどうすればよいですか?

2024 年 12 月 17 日に公開
ブラウズ:919

 How to Reliably Determine if a File is a Symbolic Link in Java 1.6?

Java 1.6 でのシンボリック リンクの検証

シンボリック リンクの存在の確認は、さまざまなファイル処理操作にとって重要です。 Java では、特にディレクトリ トラバーサルのコンテキストにおいて、シンボリック リンクを識別する際に考慮すべき潜在的な問題があります。

シンボリック リンクをチェックする一般的なアプローチの 1 つは、ファイルの絶対パスと正規パスを比較することです。正規パスはファイルへの標準化されたパスを表しますが、絶対パスにはシンボリック リンクが含まれる場合があります。従来、これらのパスが一致する場合、そのファイルはシンボリック リンクではないという概念がありました。ただし、この状態は完全に信頼できるわけではありません。

代替アプローチ: 親ディレクトリのチェック

より信頼できる方法には、ファイルの代わりに親ディレクトリの正規パスを調べることが含まれます。自体。このアプローチは、シンボリック リンクがファイル レベルではなくディレクトリ レベルで解決されるという事実に由来しています。したがって、親ディレクトリとファイルの正規パスが一致しない場合は、そのファイルがシンボリック リンクであることを強く示しています。

Apache Commons は、このアプローチを実装する isSymlink という名前のメソッドを提供しています。ファイルを入力として受け取り、それがシンボリック リンクであるかどうかを示すブール値を返します。このメソッドの背後にあるロジックは次のとおりです。

  1. ファイルに親ディレクトリがない場合は、ルート ディレクトリとみなされ、シンボリック リンクにすることはできません。
  2. それ以外の場合は、正規パス親ディレクトリの正規パスが計算されます。
  3. ファイルの正規パスは、親ディレクトリの正規パスとファイルの正規パスを使用して構築されます。 name.
  4. ファイルの絶対パスと正規パスが比較されます。それらが異なる場合、ファイルはシンボリック リンクとみなされます。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3