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

问题描述 投票:1回答:2

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

c file io case-insensitive
2个回答
4
投票

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

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


1
投票

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

基本上,要使用的C头/函数是:

  • dirent.h,使用opendir / readdir / closedir通过目录中的文件
  • string.h,使用strcasecmp比较两个文件名,忽略字符的情况
© www.soinside.com 2019 - 2024. All rights reserved.