0

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

我的文件夹就像 : 1-Guerlain, 2-Chanel, 3-Diesel. 所以当第一个文件夹被删除时,我希望其他文件夹像1-Chanel, 2-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);
        }
    }
}

但这给了我以下错误:Warning: rename(./2-Chanel,./1-Chanel) [function.rename]: No error in C:\wamp\www\pcqsp-scratch\admin.php on line 196并且该文件夹不会被重命名。

我怎样才能做到这一点?谢谢你。

4

1 回答 1

0

您需要rename()的完整路径

$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);
于 2013-07-17T21:32:29.247 回答