相关疑难解决方法(0)

在Windows上获取实际文件名(带有适当的大小写)

Windows文件系统不区分大小写.如果给定一个文件/文件夹名称(例如"somefile"),我得到该文件/文件夹的实际名称(例如,如果Explorer显示它,它应该返回"SomeFile")?

我知道的一些方法,所有这些看起来都很倒退:

  1. 给定完整路径,搜索路径上的每个文件夹(通过FindFirstFile).这给出了每个文件夹的正确结果.在最后一步,搜索文件本身.
  2. 从句柄获取文件名(如MSDN示例中所示).这需要打开文件,创建文件映射,获取它的名称,解析设备名称等.相当复杂.它不适用于文件夹或零大小的文件.

我错过了一些明显的WinAPI电话吗?最简单的一个,比如GetActualPathName()或GetFullPathName()使用传入的大小写返回名称(例如,如果传入,则返回"程序文件",即使它应该是"Program Files").

我正在寻找原生解决方案(不是.NET).

c c++ windows winapi

16
推荐指数
1
解决办法
6239
查看次数

标签 统计

c ×1

c++ ×1

winapi ×1

windows ×1