关于使用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 逻辑函数的代码
展开
 我来答
136775565
2018-03-14 · TA获得超过1113个赞
知道小有建树答主
回答量:866
采纳率:88%
帮助的人:841万
展开全部

这个逻辑很简单,只要对目标文件夹进行文件数量判断递归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就行
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式