ファイルがジャンクションであるかどうかを判断する方法を探し回っていますが、満足のいく答えは見つかりませんでした。
私が最初に試したのは:
Files.isSymbolicLink(aPath)
Windows でジャンクションと呼ばれるファイルではなく、シンボリック リンクのみを検出します。
ここで提案されている解決策も試してみました (JNA ライブラリを使用): Stackoverflow question (3249117) 、しかし、ジャンクションであることがわかっているファイルのいずれかで true を返すことはありませんでした。
どのファイルがジャンクションであるかを判断する唯一の方法は、Windows コマンド プロンプトで次のコマンドを実行することです。
DIR /S /A:L
私のコンピューターでは66個のフォルダーが返されますが、Files.isSymbolicLink(aPath)は2個しか返されませんでした。したがって、これを利用する方法を見つけることができると思いますが、ファイルツリーをトラバースするときはあまり効率的ではないと思います.
標準のJavaライブラリ、または代わりにJNAを使用してこれを行う方法はありますか?