【问题标题】:Low overhead methodology to determine case sensitivity of OS确定操作系统区分大小写的低开销方法
【发布时间】:2025-12-08 01:50:01
【问题描述】:

有没有一种方法可以确定操作系统是否区分大小写而无需太多开销(无读写操作)并且不必知道服务器上某处是否存在特定的混合大小写文件?

背景:我想为区分大小写的操作系统编写一个行为不同的自动加载器。

【问题讨论】:

  • 直接检查操作系统是什么
  • @Dagon:我希望我不必打开那罐蠕虫:*.com/questions/738823/possible-values-for-php-os
  • 它可能不是特定于操作系统的。在 OS X 上,它取决于文件系统的类型。 HFS+ 不区分大小写(但我认为您可以使用区分大小写的选项挂载它),但 UFS 区分大小写
  • 为什么不只是假设区分大小写并构建。对于不区分大小写的系统,您有哪些保留意见?

标签: php case-sensitive case-insensitive


【解决方案1】:

具有无法写入文件系统的限制,即

A.txt 写入已知位置,然后尝试读取a.txt

我不相信有办法。因为即使使用仅指操作系统的操作系统嗅探(充其量是hacky并且可能给出不正确的结果)......操作系统上的不同文件系统也可能表现不同(即linux区分大小写但我安装的cifs共享不是)

我会说如果知道操作系统文件系统的大小写敏感性,它应该在代码或配置中声明。

或者更好的构建假设区分大小写但不要做任何会在不区分大小写的环境中破坏的事情,因为任何在区分大小写的系统上工作的东西都可以在不区分大小写的系统上工作(假设你不依赖于行为A.php 和 a.php 是两个不同的东西,区分大小写与否只是愚蠢的。)

【讨论】: