以编程方式确定最大文件名长度
Posted
技术标签:
【中文标题】以编程方式确定最大文件名长度【英文标题】:Programmatically determine maximum filename length 【发布时间】:2010-11-13 18:52:15 【问题描述】:如何确定 linux 机器上的最大文件名长度?
php 编程语言优先。
【问题讨论】:
【参考方案1】:您想要pathconf
or fpathconf
,它(还没有)在 PHP 中公开。 (如果是,他们可能是posix_pathconf
。)
您也可以使用getconf
,这是一个具有相同功能的命令行实用程序界面。在你的系统上试试这个:
$ getconf NAME_MAX /tmp
$ getconf PATH_MAX /tmp
【讨论】:
【参考方案2】:无需以编程方式确定它。它是 255 字节。
编辑:您可以在极少数文件系统(reiser,我相信)上拥有更长的文件名,但如果您坚持使用 255,您的应用程序将可用于任何 linux 安装。
【讨论】:
【参考方案3】:大多数 linux 文件系统的最大文件长度为 255。您最好将其用作通用常量并进行修改以适应 linux 中已知的文件系统。这是一个很好的comparison of the file systems 可以使用。最大文件长度列在那里。
【讨论】:
【参考方案4】:您可以使用常量 PHP_MAXPATHLEN
【讨论】:
【参考方案5】:我认为你可以使用 realpath()。我不确定最好的方法,但例如:
$maxlen=264-strlen(realpath('index.php')));
264 是 255(最大路径限制)+ 9('index.php' 长度)。因此,从限制中减去当前路径长度可以得到最大当前路径长度。
【讨论】:
您将路径 max len(通常为 4096)与文件名 max len(通常为 255)混淆了。以上是关于以编程方式确定最大文件名长度的主要内容,如果未能解决你的问题,请参考以下文章
检测 URL 的长度以确定 UIDocumentPickerViewController 的文件类型
如何确定与 AVAudioPlayer 关联的音频文件的长度
以编程方式调用 segue 导致 NSInvalidArgumentException,原因:'UILabel 长度'无法识别的选择器