1
3
没有办法避免这种情况,因为
|
2
4
把它修好! 从长远来看,你设计的任何规避解决方案都会更糟。 |
3
2
好吧,首先我想你 应该 考虑移动到一致的命名方案,而不是使用一些变通方法。 不管怎样,怎么样 读取所有文件名并将其放入地图中 是否将小写名称作为键?那么你就可以 从地图中查找正确的文件名 . 这也将允许您检测到冲突,例如,同一目录中具有相同小写表示形式的两个文件“filea.txt”和“filea.txt”,在这种情况下,您知道必须以完全不同的方式解决问题(因为您必须知道要打开哪个文件,它是不明确的,并且这样的解决方法我不会那么做的。 |
4
1
假设这些文件在Linux上是混合的,没有简单的答案。 我能想到的最好方法是让您的应用程序列出相关目录,并创建实际Linux文件名的内存数据结构。然后,要打开不区分大小写的文件,可以将路径名拆分为多个组件,使用不区分大小写的搜索在内存树中进行搜索,将实际(区分大小写)路径名创建为bulid,然后使用它来打开文件。 问题在于,它(实际上是你的应用)无法处理你在同一个Linux目录中(比如说)“foo.txt”和“foo.txt”的情况。 但最好的解决方案是更改应用程序,使其与区分大小写的路径名一起工作。 |
5
1
为什么你不能改变很多文件?如果文件的数量真的是唯一阻碍你的因素,那么只需编写一个小脚本,将它们全部重命名为小写。 |
6
0
从你的问题中还不清楚是什么导致了你的文件的案例变更。如果在Linux中所有文件都是小写的,而在Windows中它们是混合大小写的,则可以将文件名转换为小写,如下所示:
|
7
0
有一种解决方案具有糟糕的运行时性能,但实现起来非常简单:
更换
我没有编译这段代码,它可能有打字错误。我把它们留给你去修理。 |