如何重命名包含内容的文件夹?-PHP

如何重命名包含内容的文件夹?-PHP,php,directory,rename,Php,Directory,Rename,我想重命名一个包含文件的文件夹,但它不起作用。在数据库中已成功更改,但文件夹未获得新名称 代码: 文件夹中有一些照片和文件,但我想问题是,当文件夹在服务器上运行时,我想重命名它。当我想重命名他/她的文件夹时,该用户已登录,但如果我首先注销该用户,$log\u username将等于零。有什么解决方案吗?您可以在php中使用linux命令: exec("mv $oldname $newname"); 将文件夹复制到新名称,并在用户登录后删除旧文件夹,以确保在用户登录时所有文件夹都能正常工作。 或

我想重命名一个包含文件的文件夹,但它不起作用。在数据库中已成功更改,但文件夹未获得新名称

代码:


文件夹中有一些照片和文件,但我想问题是,当文件夹在服务器上运行时,我想重命名它。当我想重命名他/她的文件夹时,该用户已登录,但如果我首先注销该用户,
$log\u username
将等于零。有什么解决方案吗?

您可以在php中使用linux命令:

exec("mv $oldname $newname");

将文件夹复制到新名称,并在用户登录后删除旧文件夹,以确保在用户登录时所有文件夹都能正常工作。
或者,当会话结束时,用户可以永远保持登录状态。选择合适的

// Copy the folder
copy("user/$log_username", "user/$un");

 //Update database
 //Some code here

 // When user logs out
 Unlink("user/$log_username");
试试这个:

rename(realpath(dirname(__FILE__)).'/myoldfolder',realpath(dirname(__FILE__)).'/mynewfolder');

是否应该使用绝对链接而不是相对链接

将文件夹复制到新名称并删除旧文件夹?好的,我会尝试一下,您会收到什么错误消息?@Andreas复制并不总是一个简单的选项,因为文件夹可能包含数兆字节的数据,并会使服务器耗尽磁盘空间(或者说效率低下)@OliverMGrech从同一个驱动器复制和复制到同一个驱动器只是一个问题,或者对文件重新编制索引。它们不是真的被复制的,你自己试试看,你会发现你可以在几秒钟内复制TB的数据。如果目录不为空,则失败。因为我使用了错误的函数,所以向下投票有点不公平,不是吗?我的意思是,一句友好的评论就足够了。每当我投票表决一个问题或答案时,我都会将鼠标停在箭头上方一点,然后阅读工具提示。它说:“这个答案没有用”。我想再次否决它,但这是不可能的:它不删除目录,只删除文件。也只复制文件,它不会递归工作。@axiac,你说得对。我看到此通知
警告:copy():copy()函数的第一个参数不能是目录
。我怀疑这个答案是如何被接受的。尝试了以下代码:重命名(realpath(dirname(user))。/$log_username',realpath(dirname(user))。/$un');它说:注意:使用未定义的常量user-假定“user”不将其用作常量,而是用作字符串dirname(FILE))。“user/$log_username”文件是一个PHP神奇常量:aww。stackoverflow已重新配置了代码u______;文件__;而不使用空格…仅当您运行自己的VPS或DS时。大多数共享主机提供商阻止执行
rename(realpath(dirname(__FILE__)).'/myoldfolder',realpath(dirname(__FILE__)).'/mynewfolder');