如何在 Delphi 中获取用户输入的文件或目录的正确文本大小写?

How can I get the correct text case of a user inputted file or directory in Delphi?

在我的 (Windows) 程序中,用户可以输入文本,该文本可以是文件或目录。

现在我想修复文本大小写,使输入文本与文件系统大小写匹配。例如,如果用户输入:

C:\PROGRAM FILES\FOO\BAR

并且目录存在这个文本大小写:

C:\Program Files\Foo\Bar

我想 return 它与后面的(正确的)文本大小写。

在 Delphi 中我该怎么做?我尝试使用 FindFirstFindNext,但我没有 TSearchRec 中的完整路径(当然我可以拆分字符串并为每个级别执行多个 FindFirst ,但一定有更好的方法)。

我使用 Delphi 10.4 如果它改变了什么。

使用 CreateFile() 打开 file/directory 的句柄,然后您可以使用: