【问题标题】:Programmatically determine maximum filename length以编程方式确定最大文件名长度
【发布时间】:2010-11-13 18:52:15
【问题描述】:

如何确定 linux 机器上的最大文件名长度?

PHP 编程语言优先。

【问题讨论】:

    标签: php linux path filenames name-length


    【解决方案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)混淆了。
            猜你喜欢
            • 2010-12-02
            • 1970-01-01
            • 2013-03-28
            • 1970-01-01
            • 2011-09-28
            • 1970-01-01
            • 1970-01-01
            • 2010-09-16
            相关资源
            最近更新 更多