【问题标题】:How to check Directory exits with proper case in java如何在java中以正确的大小写检查目录是否存在
【发布时间】:2014-06-29 20:16:51
【问题描述】:

我想将一个文件夹复制到java中的另一个位置, 但是当我使用

File f = new File(userInputFilePath);

并检查

if(f.isDirectory())

它返回 true

例如,userInputPath 为“C:\To\TesT”,而目录路径为“C:\to\Test”。

请尽快给我建议

【问题讨论】:

  • 请让函数行为更清晰(或“对不起,什么?!”)
  • 你为什么关心这个?默认情况下,Windows 文件夹名称不区分大小写。
  • 您在 Windows 上,并且可能在 NTFS 上。因此:“在 NTFS 中,您可以创建唯一的文件名,存储在同一目录中,仅大小写不同。例如,以下文件名可以共存于 NTFS 卷上的一个目录中:CASE.TXT case.txt case.TXT但是,如果您尝试在 Win32 应用程序(例如记事本)中打开其中一个文件,则您将只能访问其中一个文件,而不管您在“打开文件”对话框中键入的文件名的大小写。"跨度>
  • 忽略粗鲁的语气,这个问题已经有多个答案,例如stackoverflow.com/questions/13620555/… 此外,如果您的文件系统驱动程序不区分大小写,正如 kelunik 指出的那样,尝试检查它是没有意义的(教育目的)。

标签: java


【解决方案1】:

在 Windows 系统上,文件名的大小写无关紧要;尝试将目录从Test 重命名为TesT,你就会明白我的意思了。当然,您可以通过比较字符串(例如f.getPath().equals(userInputFilePath) && f.isDirectory())来手动解决此问题,但这不一定是一个好主意,因为大多数程序不会区分两者,这可能会导致意外行为。

【讨论】:

    猜你喜欢
    • 2011-05-14
    • 1970-01-01
    • 1970-01-01
    • 2012-09-12
    • 2017-06-08
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多