我在c-code中读取了一个xml文件。 我从每个用户的命令行选项获取xml文件的文件名。当我的文件名是例如" TestName.xml"时,当用户给出" testname.xml"时,它也会起作用。作为命令行选项,因为没有区分大小写。
但就我而言,我有一个问题。我想生成一个头文件" TestName.h"超出xml文件,正如您所看到的,名称应始终与大小写相同。
我现在的问题是,我使用命令行选项中的文本,当用户键入" testname.xml"时,我的头文件的名称也只有较小的案例。
我想要以下解决方案之一: 1.我可以以某种方式读取正确的区分大小写的文件名,当用户输入时也是如此 2. fopen_s()应该只对工作区敏感
如果解决方案1没有可能,解决方案2应该只是一个选项。
感谢您的帮助!
答案 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之间的区别是什么,但我不认为它有很大的不同......