我听说在Linux中,你应该在一个文件夹中保存32000个文件以下的目录。这就是为什么我想制作一个上传目录,就是这样的构建:
$x = rand(0,32000);
$z = rand(0,32000);
$y = rand(0,32000);
$f = rand(0,32000);
root/uploaddir/$x/$y/$z/$f/{user_id}/
我的问题是,我还想检查一下,如果它已经存在,并且是否确实要检查目录中是否已经有32000。
但是当我有30000 ^ 4个目录时,我不知道应该如何处理它,所以它不会太慢。
那么,当参数为:时,我应该如何执行检查并找到文件应放在哪个目录中: - 文件夹和父文件夹不得包含更多32.000个文件/目录
希望这是可以理解的。
最诚挚的问候,
Denlau。
答案 0 :(得分:3)
不使用随机数,而是使用userid中的连续字符:
/root/uploaddir/j/o/n/e/jones/
/root/uploaddir/s/m/i/t/smith
/root/uploaddir/f/r/e/d/freddie
etc.
然后,每个目录中永远不会有超过200个条目。
答案 1 :(得分:0)
检查文件或目录是否存在:
if( file_exists($path) ) {
// do something here
}
获取目录中的文件数:
exec("ls $path | wc -l", $number_of_files);