当我删除数据库中的字段时,我确实想减少服务器上包含的文件夹的第一部分。
我的文件夹如下: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);
}
}
}
但这给了我以下错误:警告: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);