2011-08-21 213 views
13

我在查找这些信息时遇到了困难,试验和错误告诉我该值非常高。所以我想我要求社区看看有没有人知道,并可以指给我一个确认Lion长度的苹果页面。我所知道的是雪豹更大。Mac OS X Lion:最大路径长度是多少?

+2

我打算冒昧地说,任何远程接近此限制的应用程序都是一个非常糟糕的主意。 – jonmorgan

+0

@spookyjon:+1。也可能依赖于文件系统。 –

+2

@spookyjon你错过了一点,在Windows中它的248,在10.6的250中,在Lion中它看起来要大得多。这是关于测试的限制,以确保你没有违反他们,但要知道你需要知道边界是什么。你对某些你不知道的事情做出假设,不应该为什么我要问一个问题,但是要投票,因为你个人对你所做的事情不同意,因为假设是非常糟糕的。 –

回答

9

的限制取决于所使用的文件系统 - OSX使用HFS加上默认...

唯一的官方文件,我可以指出对哪个文档的255文件名长度的限制HFS Plus spec

Wikipedia提示HFS Plus上的最大路径长度为“无限制”。

也许联系Apple Dev支持是获取有关限制的确切声明的最可靠方法。

11

老,但我找到了答案:

#include <sys/syslimits.h> 

,然后它就会有PATH_MAX常数使用#define。就我而言,

char filenameBuffer [PATH_MAX]; 

你可以硬编码1024的最大路径,但使用这样的恒定,使你的代码可扩展性与Mac OS X上的优胜美地,最大路径长度的新版本

+3

请记住'NAME_MAX'也是单个文件名的限制。 – CyberSkull

+1

从实验中,我发现对于给定的文件,使用长度为1016的工作路径和长度为1017的路径不会,这似乎与该常数以及所有文档相矛盾。 – Trejkaz

5

从实际测试是1016个字符。 1017失败。

+0

对Sierra也进行了测试,最大路径长度似乎没有限制 – Protongun

+0

请注意,/ tmp,/ etc和/ var是/ private/tmp,/ private/etc和/ private/var的符号链接。如果您尝试在这些目录中创建文件,则可以创建大小为(1024 - len(/ private))的路径,即1016 –