C - 给出不区分大小写的文件路径,如何检查文件是否存在?

时间:2017-04-18 19:11:54

标签: c file io case-insensitive

例如,假设我们有一个名为“Hello.txt”的文件,然后检查“hello.txt”或“heLLo.txt”是否存在都应该返回true。

2 个答案:

答案 0 :(得分:4)

如果你正在运行Windows或任何不区分大小写的文件系统,那么除了检查一个外壳之外没什么可做的。如果存在"Hello.txt",那么"hEllo.txt"就存在(并且是同一个文件)(这里的难点是当你想确保文件拼写为文件系统中给定的大小写时)

如果您正在运行区分大小写的文件系统,只需获取当前文件的目录名称,列出文件内容,并将条目与当前文件名进行比较,忽略大小写。

答案 1 :(得分:1)

看看fcaseopen,它演示了如何处理不区分大小写的文件操作。

本质上,要使用的C标头/函数为:

  • dirent.h中,使用opendir / readdir / closedir浏览目录中的文件
  • string.h中,使用strcasecmp比较两个文件名,而忽略字符的大小写