【发布时间】:2012-09-13 13:57:35
【问题描述】:
我需要将文件从路径 ($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
等等……
寻求您的建议。
附:如果你有 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);
}
}
【问题讨论】:
-
您想将代码添加到问题中吗?
-
首先我不明白'-'投票。什么的代码?我要求提供代码建议!
-
这不是 Stack Overflow 的工作方式。如果您对代码有特定疑问或问题,我们很乐意为您提供帮助。你的问题读起来很像“请有人为我写这个”
-
感谢您添加代码。我已经添加了答案。
-
这不是你学习编程的教室。在提出问题之前,您需要做两件事: 1. 阅读手册,如果您在其中找不到所需的内容 2. 问问自己您要问的是实际问题还是您无法解决它。对不起,如果我看起来有点苛刻,但在要求这里的人花时间解决像这样的一个非常基本的问题之前,你必须努力寻找解决方案。