On Fri, 18 Apr 2025 18:22:35 GMT, Brian Burkhalter <b...@openjdk.org> wrote:

>>> From experimentation with C++ code is VS, it appears that 
>>> `CreateDirectoryW` will create a directory with either a leading or 
>>> trailing space in its name, whereas `createFileW` will create a file with a 
>>> leading space in its name, but a trailing space is trimmed.
>> 
>> Right, the Windows APIs are very inconsistent on this, and why the Windows 
>> implementation of Path will always reject input where an element has a 
>> trailing space.
>
> It turns out that a case such as `foo \bar\gus` already fails in 
> `File.mkdirs` due to directory creation itself, so an explicit check for a 
> trailing space in directory elements does not appear to be necessary, 
> although having the failure occur in `isInvalid` would be more fail-fast.

The benefit of doing it before attempting any I/O operation is avoids the 
unpredictable behavior of the Win32 calls. Otherwise, I think it means through 
each Win32 call used by WinNTFileSystem and seeing how it behaves.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/24635#discussion_r2060283293

Reply via email to