[function.rename]:中没有错误


[function.rename]: No error in

当我删除数据库中的字段时,我确实想减少服务器上包含的文件夹的第一部分。

我的文件夹如下:1-Guerlain2-Chanel3-Diesel。因此,当第一个文件夹被删除时,我希望其他文件夹像1-Chanel2-Diesel一样。

这是我的代码:

foreach (new DirectoryIterator($path) as $file)
{
    if($file->isDot()) continue;
    if($file->isDir())
    {
        $parts = explode('-', $file->getFilename());
        if ($parts[0] > $_GET['id_folder']) {
            $old = "./" . $parts[0] . "-" . $parts[1] . "";
            $new = "./" . ($parts[0] - 1) . "-" . $parts[1] . "";
            rename($old, $new);
        }
    }
}

但这给了我以下错误:警告:rename(./2-Chanel,./1-Chanel)[function.rename]:在第196行的C:''wamp''www''pcqsp scratch''admin.php中没有错误,文件夹不会被重命名。

我怎样才能做到这一点?非常感谢。

您需要重命名()的完整路径

$parts = explode('-', $file->getFilename());
$path = $file->getPath();
$old = $path . DIRECTORY_SEPARATOR . $parts[0] . "-" . $parts[1] . "";
$new = $path . DIRECTORY_SEPARATOR . ($parts[0] - 1) . "-" . $parts[1] . "";
rename($old, $new);