Hello Sergey,

Particularly on MS Windows OS "File" object containing trailing spaces in the directory name returned from getSelectedFile(), probably could not be used anyhow similarly as it is now, when "JFileChooser" returns "File" with trimmed spaces from the right of the directory name, since the trimmed directory name does not equal the actual directory name in the file system. But on Linux OS "File" object with not trimmed directory name can be successfully used for "File" operations like "File.exists()", while "File" with trimmed directory name will be treated as not existent.

For example "File.exists()" method returns "false" for both trimmed and not trimmed names in "File" object on MS Windows OS, if in the file system the corresponding directory contains spaces in the end of its name. For this particular case ("File.exists()") I already filed a separate bug in Java Core Libraries area (https://bugs.openjdk.java.net/browse/JDK-8156657).

Though currently Java Core Libraries do not support directory and file names ending with spaces on MS Windows OS, I still think that it is incorrect that "JFileChooser" modifies the real name of the directory or file by removing trailing spaces from its name.

Thank you,
Anton

On 5/11/2016 4:54 PM, Sergey Bylokhov wrote:
On 11.05.16 16:47, Anton Litvinov wrote:
The method "java.nio.file.Files.createDirectory(Path dir,
FileAttribute<?>... attrs)" cannot be used for this purpose also,
because "java.nio.file.Path" cannot be constructed for the directory
name ending with spaces and "java.io.File.toPath()" throws the exception
"java.nio.file.InvalidPathException: Trailing char < > at index N:
<DIRECTORY_PATH>".

Then how the File which was returned from getSelectedFile() can be used(what operations will be allowed?) by the application if such files are unsupported by the corelib?


It is possible to create a directory with such a name from the shell
script on MS Windows OS, therefore I decided to use the shell script for
this regression test.

Note sure that the case for windows correct:
Windows_95 | Windows_98 |  Windows_NT | Windows_ME



Reply via email to