国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > PHP > 正文

php移動(dòng)文件夾和文件

2020-03-22 18:54:10
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
方法一,copy+unlink方式

我的思路是:移動(dòng)=新建+刪除。在移動(dòng)之前在目標(biāo)的目錄新建一個(gè)文件夾,然后在把文件和目錄都復(fù)制過(guò)去,最后在執(zhí)行刪除.

代碼如下復(fù)制代碼

/**
* @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)的文件或者目錄的地址

方法二,rename

1.對(duì)于文件,rename可以在不同盤符之間移動(dòng).

2.對(duì)于空文件夾,rename也可以在不同盤符之間移動(dòng).但是目標(biāo)文件夾的父目錄必須存在.

3.對(duì)于非空文件夾,只能在同一盤符下移動(dòng).不過(guò),1和3,應(yīng)該差不多能夠?qū)Ω端械膽?yīng)用情況了.

代碼如下復(fù)制代碼


rename("D:/testdir/test","F:/totestdir/mydir");
?>

對(duì)于一個(gè)40M的文件,copy+unlink方式需要7.6249899864197秒,而rename方式,只需要0.024738788604736,快300倍.

代碼如下復(fù)制代碼

//定義一個(gè)變量,保存文件名
$file = "html/cache.txt";
$rename = "html/renameCache.txt";
//使用rename()函數(shù)重命名一個(gè)文件
if(rename($file,$rename)==TRUE){
echo "重命名文件成功!";
}else{
echo "重命名文件失敗!";
}
//使用rename()函數(shù)移動(dòng)文件,并改名
rename("html/renameCache.txt","html/a/2.txt");
//使用rename()函數(shù)重命名目錄
rename("html","cache");
//使用rename()函數(shù)移動(dòng)目錄到目標(biāo)目錄
rename("b","cache/b");
?>

以上就介紹了php移動(dòng)文件夾和文件,包括了方面的內(nèi)容,希望對(duì)PHP教程有興趣的朋友有所幫助。

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 阿巴嘎旗| 宜良县| 遂宁市| 遵义市| 饶阳县| 平山县| 盐源县| 余干县| 满城县| 梓潼县| 平阳县| 平顺县| 永州市| 上思县| 攀枝花市| 太白县| 嵩明县| 荃湾区| 永州市| 岳池县| 南川市| 白水县| 永登县| 历史| 抚顺县| 瑞金市| 英山县| 永和县| 宁武县| 桦南县| 中方县| 璧山县| 南平市| 盐山县| 庆城县| 贵德县| 阿坝| 南宫市| 南充市| 乐昌市| 同江市|