Szukałem w pobliżu, próbując znaleźć sposób na ustalenie, czy plik jest skrzyżowaniem, czy nie, i nie znalazłem zadowalających odpowiedzi.Sprawdź, czy plik jest złączem (w systemie Windows), czy nie?
Pierwszą rzeczą próbowałem było:
Files.isSymbolicLink(aPath)
Wykrywa tylko linki symboliczne nie pliki zwane skrzyżowań w systemie Windows.
próbował również rozwiązanie proponowane tutaj (przy użyciu biblioteki jna): Stackoverflow question (3249117) , ale nigdy nie wrócił prawda na żadnym z plików znam się skrzyżowaniach.
Jedynym sposobem znalazłem aby określić, które pliki są złącza jest następujący przebieg polecenie w wierszu polecenia systemu Windows:
DIR /S /A:L
Na moim komputerze zwraca 66 foldery ubezpieczeniowy Files.isSymbolicLink (aPath) powrócił tylko 2. Więc przypuszczam, że mógłbym znaleźć sposób na wykorzystanie tego, ale nie sądzę, że byłoby to bardzo skuteczne przy przechodzeniu przez filetree.
Czy można to zrobić za pomocą standardowej biblioteki Java lub alternatywnie JNA?
Dziękuję, nigdy tak naprawdę nie korzystałem z JNA, z wyjątkiem kopiowania i wklejania kodu, ale jeśli jest to jedyny sposób, jak sądzę, lepiej się uczę. – Martin
To, co sugerujesz, przypomina sugestię w zamieszczonym przeze mnie linku, byłoby bardzo pomocne, gdybyś mógł podać przykład sprawdzenia flagi reparse. – Martin
'FILE_ATTRIBUTE_REPARSE_POINT' jest zdefiniowany jako' 0x400', więc przykładowy kod, z którym się łączysz, sprawdza specjalnie 'FILE_ATTRIBUTE_REPARSE_POINT'. –