/** * @parammoveDir 剪切文件和目錄 * @param string $to 目標(biāo)文件路徑 * @param string $from 源文件路徑 */ function moveDir($from,$to){ if(!is_dir($from)){//判斷$from源文件目錄是不是存在 return false; } $from = rtrim(str_replace(‘//’,'/’,$from), ‘/’);//為了在linux上兼容,我們把/符號(hào)全部轉(zhuǎn)換成/因?yàn)閣indows下面2個(gè)符號(hào)都可以的. $files = scandir($from);//列出源文件目錄的文件和文件夾,并且以數(shù)組的形式存入 $files。 /* $files的輸出結(jié)果: Array ( [0] => . [1] => .. [2] => a [3] => b [4] => c [5] => dir [6] => dir.php [7] => dir2 [8] => dir2.php [9] => function_file.php [10] => homework.php ) 可以看到scandir這個(gè)函數(shù)會(huì)輸出2個(gè)多余的值: [0] => . [1] => ..在這對(duì)我們木有用.寫(xiě)一個(gè)if干掉他們。 */ foreach($files as $file){//對(duì) $files數(shù)組進(jìn)行遍歷,方便對(duì)數(shù)組里面的文件夾和文件進(jìn)行復(fù)制和刪除. if(in_array($file, array(‘.’,’..’))){// array(‘.’,’..’)新建了一個(gè)只有.和..的數(shù)組,并且查找$file里面知否有.和..這2個(gè)值 continue; } $subFrom = $from.’/’.$file;//把遍歷后的文件夾或者文件名變成一個(gè)新的路徑 $subTo = $to.’/’.$file; if(is_dir($subFrom)){ @mkdir($subTo);//判斷$subFrom是不是一個(gè)目錄,如果是目錄就在目標(biāo)的目錄下面,新建一個(gè)目錄 moveDir($subFrom, $subTo);//遞歸執(zhí)行新建目錄。 }else{//不是目錄的話,就直接復(fù)制文件.復(fù)制完就刪除文件. copy($subFrom, $subTo); unlink($subFrom);//刪除所有文件 } @rmdir($subFrom);//刪除所有的目錄 } return true; } moveDir(‘C:/Users/Administrator/Desktop/0704′,’e:’);//在這傳遞你要移動(dòng)的文件或者目錄的地址 |