在PHP中重复的文件夹名称后追加(1),(2)


Append (1),(2) after duplicated folder name in PHP

目前我必须在windows文件系统中创建一个类似的文件夹。

例如:如果存在文件夹,则在末尾添加(1);如果存在(1),则在结尾添加(2),问题是,PHP中是否有标准函数,或者我必须编写自己的函数?

if (isdir($folderPath)) {
        $folderPath =  ...special handling or any PHP standard function ..
        mkdir($folderPath);
}

从阅读PHP手册来看,到目前为止还没有类似的参数可以让我处理这个问题?除了mkdir可以工作之外,还有什么功能吗?感谢

我不知道有哪个函数能做到这一点。脑海中浮现出一种残酷的方法:

function make_filename($name) {
    if (file_exists($name)) {
        $i = 0;
        do {
            $testname = sprintf("%s (%d)", $name, ++$i);
        }
        while (file_exists($testname));
        return $testname;
    }
    return $name;
}
mkdir(make_filename("test"));

如果你期望有很多重复的文件名,我不会推荐这样做。