首先,我想询问“Windows操作系统允许的最大子文件夹是什么”
但后来我想,也许我的网络托管服务提供商不是在Windows上,而是在linux或其他东西上。所以我想问一下,虚拟主机提供商通常会使用的所有主要操作系统的最大允许子文件夹是什么。 (说Linux,Mac或Windows会安全吗?)
然后,根据您的经验,网站托管网站是否会限制我们可以制作的子文件夹数量?
(为什么会这样?因为我希望每个用户都有自己的文件夹,以便轻松访问他们的图片。这样可以吗?或者这是不好的做法?还是编程新手。)
答案 0 :(得分:4)
限制不在于嵌套子目录的深度(你可能有几十个,甚至更多),但在文件系统及其配额上。
同样具有非常长的文件路径是不方便的(并且可能稍微低效)。以编程方式,可以有几百甚至几千个字符的文件路径;但是人类的大脑无法记住这么长的文件路径。
大多数文件系统(在Linux上)对inodes的数量有固定限制。
某些文件系统在包含一万个条目的目录中表现不佳(例如,因为搜索是线性的而不是二分法)。你很难处理它们(例如偶数ls *
输出太长)。因此,明智的做法是/somepath/a/0001
... /somepath/z/9999
而不是/somepath/a0001
...... /somepath/z9999
如果您的目录中有成千上万的用户,您可能希望例如用户首字母对用户进行分组,例如有/some/path/A/userAaron/images/foobar
和/some/path/B/userBasile/images/barfoo
等等。所以/some/path/A/
只有几百个子目录等等......
方便的经验法则可能是:避免拥有超过几百个条目 - 每个目录中的子目录或文件 - 。
某些Web应用程序将小数据块存储在SQL数据库的各个行中,并使用文件(可能生成其名称)用于较大的数据块,并将文件路径存储在数据库中。拥有数百万个文件,大多数只有几十个字节可能效率不高。
一些系统管理员也在文件系统上使用quotas。
答案 1 :(得分:3)
在Windows中,任何路径中都有260个字符的限制。这包括文件名,因此文件的字符数不能超过260-directory path length
。
这意味着您可以拥有相当多的子目录,但随着您的深入,最大文件名会变短。
答案 2 :(得分:0)
其他一些非常重要的是性能。使用Windows,如果你开始获得超过5k的文件,它开始变慢,10k它爬行,50k变得完全无法使用!