【问题标题】:move a lot file in a tree folder in PHP在 PHP 的树文件夹中移动很多文件
【发布时间】:2012-03-03 11:58:44
【问题描述】:

我的服务器上有这个组织:
ID/PDF/file.pdf
我想要这个:
ID/PDF/cont/file.pdf

我有大约 4000 个 ID。
所以我有一个脚本女巫自动创建文件夹/cont。
但是,我不知道要移动 file.pdf。 例如我有:

4027/PDF/1.pdf
4027/PDF/2.pdf

4028/PDF/1.pdf

4029/PDF/1.pdf
4029 /PDF/2.pdf
4029/PDF/3.pdf


我想:

4027/PDF/cont/1.pdf
4027/PDF/cont/2.pdf

4028/PDF/cont/1.pdf

4029/PDF/cont/1.pdf
4029/PDF/cont/2.pdf
4029/PDF/cont/3.pdf

这是我创建文件夹的脚本:

$rqt = mysql_query('SELECT * FROM ouvrages');
  while ($data= mysql_fetch_assoc($rqt)) {
   mkdir('ARCHIVE/'.$ID.'/PDF/cont', 0777);
  }

感谢您的帮助!

【问题讨论】:

    标签: php file directory move


    【解决方案1】:

    您可以使用 PHP 的 rename() 函数不仅可以重命名,还可以移动文件和目录。手册给出了这个移动文件的例子:

    rename("/tmp/tmp_file.txt", "/home/user/login/docs/my_file.txt");
    

    【讨论】:

    • 好的,但是,我不知道文件名。我想要一个请求“此文件夹类型中的所有文件,转到此文件夹”而不是此文件夹/文件转到此文件夹/文件...
    • @SebGouaille:您应该遍历每个目录的文件并对每个单独的文件执行移动操作。您可以通过在 glob()scandir() 的结果上使用 foreach 来做到这一点。
    【解决方案2】:

    将整个文件夹重命名两次可能更容易(也更快!):

    rename('PDF', 'PDF_old');
    mkdir('PDF');
    rename('PDF_old', 'PDF/cont');
    

    【讨论】:

      猜你喜欢
      • 2015-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-02
      • 1970-01-01
      • 1970-01-01
      • 2011-07-22
      • 2021-12-14
      相关资源
      最近更新 更多