【问题标题】:How to detect tab/spaces in canonical path in Windows如何在 Windows 中检测规范路径中的制表符/空格
【发布时间】:2021-03-29 07:52:40
【问题描述】:

假设我在“myTextField”中输入了这条路径:/home/extras /myFolder

这是我的 if 语句,它在 Linux 上完美运行,它检测到 extras/ 之间的空格,但 Windows 不检测每个目录名称后面的空格。

奇怪的是,Windows 会检测目录名称之间的空格,例如,如果我输入:ex tras,但它不会检测到末尾的空格。与Windows有关,但如何解决?

if (new File(myTextField.getText()).getCanonicalPath().contains(" ")) {
//DO STUFF
}

【问题讨论】:

  • 这与 SWT 有什么关系?我猜getCanonicalPath 正在删除 Windows 上的尾随空格,这种方法在不同平台上的行为确实不同。

标签: java eclipse path swt


【解决方案1】:

Windows 通过删除尾随空格和句点来规范文件名,请参阅“File path formats on Windows systems”。此外,Java API 不允许通过附加尾随目录分隔符 (\) 来跳过此规范化,尾随分隔符将被忽略。

这就解释了为什么getCanonicalPath()去掉了尾部空格,但是文件名中间的空格没有去掉。

【讨论】:

    猜你喜欢
    • 2019-10-18
    • 2014-08-27
    • 1970-01-01
    • 1970-01-01
    • 2010-10-04
    • 2011-04-05
    • 1970-01-01
    • 1970-01-01
    • 2014-07-28
    相关资源
    最近更新 更多