假设我在“myTextField”中输入了以下路径:/home/extras /myFolder
这是我的if语句,它在Linux上工作得很好,它可以检测extras和/之间的空格,但Windows不会检测每个目录名称后面的空格。
奇怪的是,Windows会检测目录名之间的空格,例如,如果我输入:ex tras,它永远不会检测到目录名末尾的空格。与Windows有关,但如何解决呢?
if (new File(myTextField.getText()).getCanonicalPath().contains(" ")) {
//DO STUFF
}发布于 2020-12-20 02:36:48
Windows通过删除尾随空格和句点来规范化文件名,请参阅"File path formats on Windows systems“。此外,Java不允许通过附加尾部目录分隔符(\)跳过此规范化,尾部分隔符将被忽略。
这解释了为什么getCanonicalPath()会删除尾随空格,但不会删除文件名中间的空格。
https://stackoverflow.com/questions/65360775
复制相似问题