0

我有一个文件夹路径 f1/f2/。f1 和 f2 都是文件夹 f2 文件夹包含许多子文件夹,例如 ff0、ff1、ff2、ff3。f2 还包含一个名为 copy_folder 的文件夹。(路径为 f1/f2/copy_folder)。我需要剪切并复制 ff0、ff1、ff2、ff3 中的所有内容以及文件夹(ff0、ff1、ff2、ff3)到路径是 f1/f2/copy_folder 。即,经过所有处理,copy_folder 应该包含 ff0, ff1,ff2,ff3 及其内容。同样应该从旧文件夹中删除。即从文件夹 f2

实际上,我在 php 5.3 中使用函数“copy”进行了此操作。例如:这是我的示例代码 mkdir(f1.f2/copy_folder/ff0) //我在 copy_folder 中创建了文件夹 copy(f1/f2/ff0/t1.exe, copy_folder/ff0) //将内容复制到 ff0 中 copy_folder unlink(f1/f2/ff0) //删除旧文件夹 ff0

我在 php 5.3 中做到了这一点。但它在 php 5.2.1 中不起作用。有什么问题吗?我正在使用 zend 框架工作。我在数组中使用了一些细节('$arrNewClosedIncidentsDetails')

              foreach($arrNewClosedIncidentsDetails as $arrNewClosedDet)    


{                           //iteration of closed incident details there by taking the old path


                $strOldPath = $config->paths->releaseattach.'/'.$arrNewClosedDet['strPatchPath'];  //taking the

旧路径 if(is_dir($strOldPath))

{ //如果文件是目录

$strNewFolderPath = $config->paths->closedreleaseattach.'/'.$arrNewClosedDet['strFolderName'];

//taking the new folder path to which old folder and sub files have to copied
                        mkdir($strNewFolderPath); 

                                                              //making the directory in new path (with old folder name)
                        chmod($strNewFolderPath, 0777);   

                                                      //giving permission to this created folder
                        $arrNewFolderRelatedFiles = scandir($strOldPath);  

                                    //scan all files from old folder 
                        foreach($arrNewFolderRelatedFiles as 

$objNewFolderRelatedFiles) { //迭代旧文件夹中的所有文件

                            if($objNewFolderRelatedFiles != '.' && $objNewFolderRelatedFiles != '..') 

{

                                        //remove default dot elements,which will present as the first and second array value

                             if (copy($strOldPath.'/'.$objNewFolderRelatedFiles, $strNewFolderPath.'/'.$objNewFolderRelatedFiles)) { 

//将所有跟踪到的文件复制到新路径下创建的相应新文件夹中 chmod($strNewFolderPath.'/'.$objNewFolderRelatedFiles, 0777); //授予在新文件夹中创建的所有文件的权限

                                      unlink($strOldPath.'/'.$objNewFolderRelatedFiles);                                               //delete the files from old folder 
                                 }
                                }
                        }
                         rmdir($strOldPath);                                                                                                //remove all old folders
                }
             }

提前致谢

4

1 回答 1

0

您可以使用该rename功能。rename(old_dir_name, new_dir_name). http://php.net/manual/en/function.rename.php

于 2013-05-03T17:30:17.220 回答