我无法识别我的代码有什么问题。 这行代码是删除文件而不是重命名。
for($i=0;$i<(7-$n);$i++){
rename($location."/".($last-$i).".txt", $location."/".($last-$i-$n).".txt");
rename($location."/".($last-$i).".bmp", $location."/".($last-$i-$n).".bmp");
}
我已经回显了源文件名和目标文件名,看起来对我来说是正确的。 我做同样的事情&#34;变沙拉&#34;使用unlink()函数,它的行为与预期一致。 我试着创建自己的rename()函数:
function myRename($old, $new){
$content = printFile($old); //this function returns the content of a file.
unlink($old);
$file = fopen($new, "w");
fwrite($file,$content);
fclose($file);
}
发生同样的错误。所有重命名的文件都将被删除。 这让我觉得&#34;变量沙拉有一个愚蠢的错误&#34;我做了。 但我无法弄清楚是什么。回显的结果对我来说是正确的。 PHP并没有给我任何与问题相关的警告。
回应结果:
来源:&#34; data / directory_exemple / 47.txt&#34; 目的地:&#34; data / directory_exemple / 46.txt&#34;
感谢您的帮助!
编辑:看起来只有一个文件被重命名。其余的被删除。 也许这是一个逻辑错误。
答案 0 :(得分:2)
以下功能正常运行
function myRename($old, $new){
$content = printFile($old); //this function returns the content of a file.
unlink($old);
$file = fopen($new, "w");
fwrite($file,$content);
fclose($file);
}
我已使用示例文件测试了您的myRename()
函数,它重命名。
确保您拥有正确的路径,从printFile()
获取内容并写入权限