检查文件是否存在,c中区分大小写



在Windows上检查一个文件是否存在大小写敏感的好方法是什么?

我通过比较文件名与文件名目录中的所有文件条目来实现这一点。在C语言中有没有更有效的方法?

使用

WIN32_FIND_DATAA FindFileData;
HANDLE h = FindFirstFile(filenametocheck, &FindFileData);

现在FindFileData.cFileName包含文件名,因为它存储在NTFS中。

你所需要做的就是比较filenametocheckFindFileData.cFileName

不要忘记用FindClose(h)关闭h手柄,并进行错误检查。

这只适用于检查当前目录,如果filenametocheck包含路径(例如..somefile.txtC:\SomedirSomefile.txt),您需要做更多的工作。

要了解更多细节,请阅读FindFirstFile的文档,也可以查看这个示例。

请注意,这可能会导致注释中提到的TOCTOU错误,具体取决于您想要实现的目标。

相关内容

  • 没有找到相关文章