昨天同事问了这样一个问题,当时就说了大概思路,现在抽时间写一下,欢迎拍砖!题目是:如何将E:/50个jquery下的所有文件(包括文件夹以及子文件和文件夹)复制到F:/50个jquery?解决思路是:读取源文件夹下所有文件及目录,然后循环判断是文件还是目录,如果是目录,递归上述方法,如果是文件,则直接拷贝到目标文件夹!<?php
$from_dir = 'E:/50个jquery';
$to_dir = 'F:/50个jquery';copy_dir($from_dir,$to_dir);function copy_dir($from_dir,$to_dir){
if(!is_dir($from_dir)){
return false;
}
echo "\r\n from:",$from_dir,'---to',$to_dir;
$from_files = scandir($from_dir);
//如果不存在目标目录,则尝试创建
if(!file_exists($to_dir)){
@mkdir($to_dir);
}
if(!empty($from_files)){
foreach ($from_files as $file){
if($file == '.' || $file == '..' ){
continue;
}
if(is_dir($from_dir.'/'.$file)){//如果是目录,则调用自身
copy_dir($from_dir.'/'.$file,$to_dir.'/'.$file);
}else{//直接copy到目标文件夹
copy($from_dir.'/'.$file,$to_dir.'/'.$file);
}
}
}
}
不知道还有没有更简单的方法,发上来学习一下~~~
$from_dir = 'E:/50个jquery';
$to_dir = 'F:/50个jquery';copy_dir($from_dir,$to_dir);function copy_dir($from_dir,$to_dir){
if(!is_dir($from_dir)){
return false;
}
echo "\r\n from:",$from_dir,'---to',$to_dir;
$from_files = scandir($from_dir);
//如果不存在目标目录,则尝试创建
if(!file_exists($to_dir)){
@mkdir($to_dir);
}
if(!empty($from_files)){
foreach ($from_files as $file){
if($file == '.' || $file == '..' ){
continue;
}
if(is_dir($from_dir.'/'.$file)){//如果是目录,则调用自身
copy_dir($from_dir.'/'.$file,$to_dir.'/'.$file);
}else{//直接copy到目标文件夹
copy($from_dir.'/'.$file,$to_dir.'/'.$file);
}
}
}
}
不知道还有没有更简单的方法,发上来学习一下~~~
解决方案 »
- PHP静态页的登录状态如何解决?
- jqGrid单元格是下拉框,能实现选中行的二级联动吗?
- 关于php调用webservice的问题
- 请教VISTA里IIS7的PHP配置问题
- 还是关于上传到空间的问题,我安装了PHP,APACHE,MYSQL,在APACHE的HTDOC文件夹下写的PHP文件都能正常执行,那么我怎么把这些文件传到空间上去呢?
- PHP包含文件(require/include/require_once/include_once/__autoload/spl_autoload)分析总结
- 如何不使用js打开新窗口
- 安装Apache以后的问题
- 强烈要求对php进行理论和发展性的讨论啊!
- 用ajax传值到后台,后台程序不输出!求教!
- html借助php防cc攻击
- 正则表达式过滤一个字符
function copedir( $source,$target ){
if(is_dir($source)){
mkdir($target);
$dir = dir($source);
while ( ($f=$dir->read())!==false && $f!='.' && $f!='..' ){
if (is_dir($source.'/'.$f)){
copedir($source.'/'.$f,$target.'/'.$f);
}else{
copy($source.'/'.$f,$target.'/'.$f);
}
}
}else{
copy($source,$target);
}
}