获取文件名区分大小写

时间:2016-10-07 08:54:16

标签: c

我在c-code中读取了一个xml文件。 我从每个用户的命令行选项获取xml文件的文件名。当我的文件名是例如" TestName.xml"时,当用户给出" testname.xml"时,它也会起作用。作为命令行选项,因为没有区分大小写。

但就我而言,我有一个问题。我想生成一个头文件" TestName.h"超出xml文件,正如您所看到的,名称应始终与大小写相同。

我现在的问题是,我使用命令行选项中的文本,当用户键入" testname.xml"时,我的头文件的名称也只有较小的案例。

我想要以下解决方案之一: 1.我可以以某种方式读取正确的区分大小写的文件名,当用户输入时也是如此 2. fopen_s()应该只对工作区敏感

如果解决方案1没有可能,解决方案2应该只是一个选项。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

感谢Karsten,在我找到解决方案的同时,我认为它与您的解决方案类似:

std::string strSochIn("/path/text.xml");
WIN32_FIND_DATAA wfd;

HANDLE hFind = ::FindFirstFileA(strSochIn.c_str(), &wfd);
if (hFind != INVALID_HANDLE_VALUE)
{
  strSochIn = wfd.cFileName;
}
else
{
  //Error
}

我不知道FindFirstFile和FindFirstFileA之间的区别是什么,但我不认为它有很大的不同......