Поддержка каталогов Windows с учетом регистра в NIO.2

#java #windows-subsystem-for-linux #ntfs #nio2 #fsutil

#java #windows-subsystem-for-linux #ntfs #nio2 #fsutil

Вопрос:

В последних сборках Windows 10 появилась возможность помечать отдельный каталог NTFS (а не всю файловую систему) как чувствительный к регистру с помощью fsutil.exe :

Если я хочу запросить чувствительный к регистру флаг данного каталога из приложения 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()).