【问题标题】:copy file from one folder to other将文件从一个文件夹复制到另一个
【发布时间】:2009-10-12 11:16:52
【问题描述】:

我想将所有文件从一个文件夹移动到另一个文件夹。我的代码如下。在这个我创建了一个文件夹,我想从模板文件夹中复制所有文件

$doit = str_replace(" ", "", $slt['user_compeny_name']);
mkdir("$doit");
$source = "templat/";
$target = $doit . "/";
$dir = opendir($source);
while (($file = readdir($dir)) !== false) {
    copy($source . $file, $target . $file);
}

它工作正常。复制所有文件,但警告 copy() 函数的第一个参数不能是目录

谁能尽快帮帮我

【问题讨论】:

    标签: php file file-handling


    【解决方案1】:

    Readdir 将读取目录中的 所有 个子目录,包括其他目录和“虚拟”目录,例如 .和..(分别链接到根目录和父目录。)您必须检查这些并阻止这些实例的copy() 函数。

    while (($file = readdir($dir)) !== false)
    {
        if(!is_dir($file))
        {
            copy($source.$file, $target.$file);
        }
    }
    

    【讨论】:

      【解决方案2】:

      您没有考虑目录顶部的... 文件。这意味着它首先尝试复制的是“\template”。这与尝试复制目录相同。

      只需添加如下内容:

      if ($file !== "." && $file !== "..")
      ...
      

      【讨论】:

        【解决方案3】:

        opendir() 将根据 documentation 包含项目 ...

        您需要使用其他 cmets 中的代码排除这些。

        【讨论】:

          【解决方案4】:
          if ($file != "." && $file != "..") {
          // copy
          }
          

          【讨论】:

            【解决方案5】:

            我知道,这个问题已经很老了,但也是答案。我觉得有必要展示一些新方法,可以用来执行请求的任务。

            与此同时,引入了具有更多功能和可能性的对象。不用说,其他答案仍然有效。

            但我们开始了,使用 DirectoryIterator:

            $szSrcFolder = 'source_folder';
            $szTgtFolder = 'target_folder';
            
            foreach (new DirectoryIterator($szSrcFolder) as $oInfo)
                if ($oInfo->isFile())
                    copy($oInfo->getPathname(), $szTgtFolder . DIRECTORY_SEPARATOR . $oInfo->getBasename());
            

            请记住,在此脚本中,所有路径都相对于脚本本身的工作目录。

            我认为这是自我解释,但我们会看看。这几行将遍历源文件夹的全部内容并检查它是否是文件并将其复制到目标文件夹,保留原始文件名。

            【讨论】:

            • 最佳答案!非常感谢@stixxx
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2011-08-22
            • 2023-01-14
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-04-27
            相关资源
            最近更新 更多