首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用PHP批量移动文件和目录

如何使用PHP批量移动文件和目录
EN

Stack Overflow用户
提问于 2010-05-26 04:49:17
回答 3查看 385关注 0票数 2

我有一个网站有许多文件和目录。这些目录有好几层深。问题是它们在错误的目录中。它们在/www/upload/site/中,所有内容都应该移到/www/中。是否有一个简短的脚本可以将所有内容上移两个目录?

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-05-26 05:19:04

正如其他回答者所指出的那样,PHP不是解决这个问题的最好的解决方案,只需下载一个FTP程序来移动文件就会容易得多。但是,如果您确实希望使用PHP实现此功能,则可以编写如下代码:

代码语言:javascript
复制
$dir=opendir('/www/upload/site/');

while ($file = readdir($dir)) {
    if ($file == '.' || $file == '..') continue; // skip references to self

    rename('/www/upload/site/'.$file, '/www/'.$file);
}

closedir($dir);

这个过程效率很低,是因为使用Rename FunctionCopy Function等更简单的方法在您的情况下不起作用。重命名会要求你“重命名到”的目录是空的,而当你从它里面移动时,它不是空的,复制不能复制完整的目录。因此,我们剩下的工作就是遍历每个文件,并使用PHP的重命名函数对每个单独的项目手动将其移动到一个新位置。

因此,虽然这个过程肯定不是PHP所必需的,但它是完全有可能做到的,并且拥有技术诀窍总是很有用的。有关使用文件/目录的更多信息,值得在PHP's File System Functions上阅读。

票数 1
EN

Stack Overflow用户

发布于 2010-05-26 04:52:26

你不需要脚本。获得一个好的ftp程序,如FileZillaFireFTP (需要firefox),您可以简单地选择全部,并将www/upload/中的所有文件夹和文件拖到www/upload,ftp程序将为您移动它们。

票数 0
EN

Stack Overflow用户

发布于 2010-05-26 05:30:45

我不知道服务器是如何设置的,但这可能不会工作,因为运行php脚本的用户不太可能拥有移动您上传的文件的权限(除非它们也是使用php脚本上传的…)。

当然,你也可以尝试这样的方式:

代码语言:javascript
复制
<?php
    exec('mv /www/upload/site/* /www');
?>

但我对此会非常小心。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2908422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档