关于使用php生成目录的问题 100
目录分为三级a0/b0/c0/。c0目录下添加文件。如果c0目录下的文件数量达到5个,则目录b0中增加目录c1,同时c0不再添加文件,变为向c1目录下添加文件。以此类推当...
目录分为三级a0/b0/c0/。
c0目录下添加文件。
如果c0目录下的文件数量达到5个,则目录b0中增加目录c1,同时c0不再添加文件,变为向c1目录下添加文件。
以此类推
当二级目录b0中的c系目录达到五个,生成二级目录b1,同时停止向b0添加c系目录,向b1目录中添加如同b0的目录和文件结构。
以此类推
当二级b系列目录达到五个时,一级目录添加a1,停止向a0目录下添加文件夹或是文件,改为向a1目录构建类似a0中的目录结构。
表述的不知道是不是清楚!
求php 逻辑函数的代码 展开
c0目录下添加文件。
如果c0目录下的文件数量达到5个,则目录b0中增加目录c1,同时c0不再添加文件,变为向c1目录下添加文件。
以此类推
当二级目录b0中的c系目录达到五个,生成二级目录b1,同时停止向b0添加c系目录,向b1目录中添加如同b0的目录和文件结构。
以此类推
当二级b系列目录达到五个时,一级目录添加a1,停止向a0目录下添加文件夹或是文件,改为向a1目录构建类似a0中的目录结构。
表述的不知道是不是清楚!
求php 逻辑函数的代码 展开
1个回答
展开全部
这个逻辑很简单,只要对目标文件夹进行文件数量判断递归3次就行
帮你简单写了个实现函数
function getFile($path, $prefix, $mkdir = false)
{
$dir = scandir($path);
$index = count($dir) - 2;
if ($mkdir) {
$name = $prefix . $index;
mkdir($path . $name);
return $path . $name;
} else {
if (!$index) {
$name = $prefix . '0';
mkdir($path . $name);
} else {
$name = $dir[count($dir) - 1];
if (count(scandir($path . '\\' . $name)) - 2 === 5) {
$name = $prefix . ($index + 1);
mkdir($path . $name);
};
};
return $path . $name . '\\';
}
}
使用方式
for ($i = 0; $i < 100; $i++) {
//初始目录 确保是空文件夹 否则a的命名逻辑可能会出现问题
$path = 'E:\\test\\';
$path = getFile($path, 'a');
$path = getFile($path, 'b');
getFile($path, 'c', true);
//理论上能实现无限递归,只要在最后一级把参数mkdir改为true就行
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询