#java #windows-subsystem-for-linux #ntfs #nio2 #fsutil
#java #windows-subsystem-for-linux #ntfs #nio2 #fsutil
Вопрос:
В последних сборках Windows 10 появилась возможность помечать отдельный каталог NTFS (а не всю файловую систему) как чувствительный к регистру с помощью fsutil.exe
:
- Чувствительность к регистру для каждого каталога и WSL
- Как включить учет регистра в именах файлов и папок в Windows 10
Если я хочу запросить чувствительный к регистру флаг данного каталога из приложения Java, в настоящее время у меня остается единственный вариант вызова
fsutil.exe file queryCaseSensitiveInfo ...
для каждого каталога, что означает создание потенциально нескольких процессов, что является дорогостоящим.
Есть ли какие-либо запланированные NIO.2 Расширения API в более новых версиях Java (11 ), предназначенные для файловых систем NTFS и / или WSL с учетом регистра?
Комментарии:
1. Нет, это не так, потому что это был бы API, зависящий от ОС, а Java в основном не зависит от ОС.
2. @Andreas, тем не менее, несмотря на независимость от операционной системы, Java (начиная с версии 7) поддерживает специфичные для ОС
Path
реализации для UNIX и Windows и может считывать атрибуты файлов как POSIX, так и NTFS. Не говоря уже о специфичной для Windows поддержке AsyncIO.3. Java в Windows обрабатывает доступ к файловой системе к файлам a / A в одном и том же каталоге с учетом регистра — например, Files.ReadString() или Files.exists проверяет разные файлы регистра, НО манипулирование путем не проверяет регистр базовой файловой системы — поэтому a.equals(A) имеет значение true, даже если Files.exists(A) имеет значение true, а Files.exists(a) имеет значение false, то же самое для.toFile().exists() и.toFile().equals(A.toFile()).