9

起初我想问“Windows操作系统允许的最大子文件夹是多少”

但后来我想也许我的网络托管服务提供商不在 Windows 上,而是在 linux 或其他东西上。所以我问的是,Web 托管服务提供商通常会使用的所有主要操作系统允许的最大子文件夹是多少。(说 Linux、Mac 或 Windows 是否安全?)

再说一次,根据您的经验,虚拟主机站点是否会限制我们可以创建的子文件夹数量?

(为什么?因为我希望每个用户都有自己的文件夹,以便轻松访问他们的图像。这样可以吗?还是不好的做法?还是编程新手。)

4

3 回答 3

8

限制不是嵌套子目录的深度(你可以有几十个,甚至更多),而是文件系统及其配额。

拥有非常长的文件路径也很不方便(并且可能效率稍低)。以编程方式,数百甚至数千个字符的文件路径是可能的;但是人脑无法记住这么长的文件路径。

大多数文件系统(在 Linux 上)对其inode数量都有固定限制。

一些文件系统对包含一万个条目的目录表现不佳(例如,因为搜索是线性的而不是二分法的)。而且你很难处理它们(例如,甚至ls *给出太长的输出)。因此,明智的做法是/somepath/a/0001....../somepath/z/9999而不是/somepath/a0001....../somepath/z9999

如果您有成千上万的用户,每个用户都有他的目录,您可能希望例如按用户的首字母对用户进行分组,例如 have/some/path/A/userAaron/images/foobar/some/path/B/userBasile/images/barfoo。所以/some/path/A/只有数百个子目录等......

一个方便的经验法则可能是:避免在每个目录中包含超过数百个条目(子目录或文件) 。

一些 Web 应用程序将小数据块存储在 SQL 数据库的各个行中,并将文件(可能会生成其名称)用于较大的数据块,将文件路径存储在数据库中。拥有数百万个只有几十个字节的文件可能效率不高。

一些系统管理员也在文件系统上使用配额

于 2013-03-20T06:35:54.323 回答
5

在 Windows 中,任何路径中都有 260 个字符的限制。这包括文件名,因此文件的字符不能多于260-directory path length.

这意味着您可以拥有相当多的子目录,但是随着您的深入,最大文件名会变短。

于 2013-03-20T06:55:43.510 回答
1

其他非常重要的是性能。对于 Windows,如果您开始获取超过 5k 的文件,它开始变慢,10k 它正在爬行,而 50k 变得完全无法使用!

于 2016-02-20T03:41:34.617 回答