你知道目录名,用mkdir创建一个,在你自己的递归函数里面

解决方案 »

  1.   

    Q: 复制1.txt到目标文件2.txt,只能复制文件的内容吗? 
    A: 
    以下部分内容参照手册
    copy — 拷贝文件
    说明
    bool copy ( string $source, string $dest )
    将文件从 source 拷贝到 dest。如果成功则返回 TRUE,失败则返回 FALSE。 注意: 从 PHP 4.3.0 开始,如果启用了“fopen wrappers”的话,source 和 dest 都可以是 URL。更多细节见 fopen()。如果 dest 是一个 URL,则如果封装协议不支持覆盖已有的文件时拷贝操作会失败。 
    根据上面说的,参数中的$source和$dest可以直接使用 C:\www\ 之类的路径,
    至于fopen(),里面有个mode参数,可以根据参数文件中定位,并且返回一个指针,个人理解与句柄类似,接下来就可以利用这个"柄",通过各类函数对文件进行操作了.
    警告
    如果目标文件已存在,将会被覆盖。 Windows 兼容: 如果复制一个零字节的文件,copy() 将返回 FALSE ,但文件也会被正确复制。 除了复制之外,php还有一个clone的概念 ,关于这个概念,我会在结尾给出一个简单的操作类Q: 还有copy 函数能复制目录以及目录下面的所有文件和目录吗?
    A: copy函数只能单个文件对单个文件,至于批量copy就要自己写脚本了
    至于检测目录,给你两个函数名 scandir()   readdir() ,如果用到可以去php.net看看
    这里有一个现成的批量copy脚本http://www.phpchina.com/html/28/29828-8433.html关于clone的脚本
    <?php
    class file_operations
    {
    //设置文件名
    function file_setname($file_name){
    $this->file_name = $file_name;
    }
    //打开文件
    function file_open($mode = "r"){
    //确定文件是否存在
    if(file_exists($this->file_name)){
    //fopen
    $this->file_handle = fopen($this->file_name,$mode);
    if(!$this->file_handle)
    echo "open failed\n";
    }else{
    echo "file not exists!\n";
    }
    }
    //在页面输出文件
    function file_read(){
    if($this->file_handle){
    //测试指针是否到了文件结束位置
    while (!feof($this->file_handle)){
    //得到文件内容
         $content=fgets($this->file_handle);
         echo $content;
    }
    }else{
    echo "read failed\n";
    }
    }
    //添加内容
    function file_write($content){
    if($this->file_handle){
    //写文件
    echo "\nyou write ".fwrite($this->file_handle,$content)." letters\n";
    }
    }
    //关闭句柄
    function file_close(){
    if($this->file_handle){
    fclose($this->file_handle);
    }
    }
    //对象克隆
    function __clone(){
    if ($this->file_handle){
    $this->file_handle = fopen($this->file_name, "a");
    }
    } private $file_name;
    private $file_handle = NULL;
    }/**
    *文件读取
    **/
    $name1 = "1.txt";
    $op1 = new file_operations();
    $op1->file_setname($name1);
    $op1->file_open("r");
    $op1->file_read();
    $op1->file_close();/**
    *文件写入
    **/
    $name2 = "2.txt";
    $content2 ="hello";
    $op2 = new file_operations();
    $op2->file_setname($name2);
    //注意fopen属性,文件应为可写
    $op2->file_open("a");
    echo "file bytes :".filesize($name2)."\n";
    $op2->file_write($content2);
    $op2->file_close();
    echo "file bytes :".filesize($name2)."\n";//克隆对象
    $object_clone= clone $op1;
    /**
    *php clone
    *因为clone是引用复制,不会进行更加深入的复制.
    *这意味着如果类中一个对象是"引用"(指针)的话
    *clone之后的新对象,仍然保持原"引用"(指针)
    *因此,这里修改的是原来的1.txt,而不是重新clone一个1.txt
    */
    $object_clone->file_write($content2);
    $object_clone->file_close();
    //unlink($filename); //删除文件
    ?>ps:因为很多东西我也没有实际操作过,所以很多概念只是提一下,如果有错误,希望大家指出...