我需要将文件从路径 ($old_path) 移动到另一个路径 ($new_path)。
在将文件移动到 $new_path 之前,我必须检查我是否已经有一个内部具有相同“filename.ext”的文件。
如果我不这样做,我只是将文件从 $old_path 移动到 $new_path,否则我有一个同名的文件,我想先用 1_ 重命名新文件,所以新文件将是' 1_filename.ext'
然后我收到另一个文件并再次检查 $new_path 中是否存在“filename.ext”。
再次我必须重命名文件,但这次我不能将它重命名为“1_filename.ext”,因为已经有一个具有此名称的文件。
记住我想要做什么,如何自动创建新文件名,每次生成最后一个 filename.ext + 1 作为前缀?
如果 $new-path 为空,第一个文件将是 filename.ext
第二次,我将(自动)将新文件重命名为 1_filename.ext
第三次,我将(自动)重命名新文件为 2_filename.ext
等等 ...
寻找你的建议。
PS如果你有FuelPHP的东西会很棒,否则......普通的PHP就可以了!
这就是我到现在为止所做的事情:
$fresh_files = File::read_dir(DOCROOT . DS . 'opta_archive');
foreach ($fresh_files as $fresh_file)
{
$file_name = basename($fresh_file, '.xml');
if (file_exists(DOCROOT.DS.'fantomic_archive'.DS.$file_name))
{
//create a new unique name for the new file
//and then move it in our archive folder
}
else
{
//move the file in our archive folder
File::rename(DOCROOT.DS.'opta_archive'.DS.$fresh_file, DOCROOT.DS.'fantomic_archive'.DS.$fresh_file);
}
}