php移動檔案夾和檔案程式碼_PHP教程

來源:互聯網
上載者:User
php中移動複製檔案我們使用copy,下面我們來看一個簡單的執行個體,他實現了目錄與目錄檔案移動,希望此文章對大家協助。

方法一,copy+unlink方式

我的思路是:移動=建立+刪除。在移動之前在目標的目錄建立一個檔案夾,然後在把檔案和目錄都複製過去,最後在執行刪除.

代碼如下 複製代碼

/**
* @parammoveDir 剪下檔案和目錄
* @param string $to 目標檔案路徑
* @param string $from 源檔案路徑
*/
function moveDir($from,$to){
if(!is_dir($from)){//判斷$from源檔案目錄是不是存在
return false;
}

$from = rtrim(str_replace(‘//’,'/’,$from), ‘/’);//為了在linux上相容,我們把/符號全部轉換成/因為windows下面2個符號都可以的.
$files = scandir($from);//列出源檔案目錄的檔案和檔案夾,並且以數組的形式存入 $files。

/*

$files的輸出結果:

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這個函數會輸出2個多餘的值: [0] => . [1] => ..在這對我們木有用.寫一個if幹掉他們。
*/
foreach($files as $file){//對 $files數組進行遍曆,方便對數組裡面的檔案夾和檔案進行複製和刪除.
if(in_array($file, array(‘.’,’..’))){// array(‘.’,’..’)建立了一個只有.和..的數組,並且尋找$file裡面知否有.和..這2個值
continue;
}
$subFrom = $from.’/’.$file;//把遍曆後的檔案夾或者檔案名稱變成一個新的路徑
$subTo = $to.’/’.$file;

if(is_dir($subFrom)){
@mkdir($subTo);//判斷$subFrom是不是一個目錄,如果是目錄就在目標的目錄下面,建立一個目錄
moveDir($subFrom, $subTo);//遞迴執行建立目錄。
}else{//不是目錄的話,就直接複製檔案.複製完就刪除檔案.
copy($subFrom, $subTo);
unlink($subFrom);//刪除所有檔案
}
@rmdir($subFrom);//刪除所有的目錄
}
return true;
}
moveDir(‘C:/Users/Administrator/Desktop/0704′,’e:’);//在這傳遞你要移動的檔案或者目錄的地址

方法二,rename

1.對於檔案,rename可以在不同盤符之間移動.

2.對於空檔案夾,rename也可以在不同盤符之間移動.但是目標檔案夾的父目錄必須存在.

3.對於非空檔案夾,只能在同一盤符下移動.不過,1和3,應該差不多能夠對付所有的應用情況了.

代碼如下 複製代碼


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

對於一個40M的檔案,copy+unlink方式需要7.6249899864197秒,而rename方式,只需要0.024738788604736,快300倍.

代碼如下 複製代碼

//定義一個變數,儲存檔案名稱
$file = "html/cache.txt";
$rename = "html/renameCache.txt";
//使用rename()函數重新命名一個檔案
if(rename($file,$rename)==TRUE){
echo "重新命名檔案成功!";
}else{
echo "重新命名檔案失敗!";
}
//使用rename()函數移動檔案,並改名
rename("html/renameCache.txt","html/a/2.txt");
//使用rename()函數重新命名目錄
rename("html","cache");
//使用rename()函數移動目錄到目標目錄
rename("b","cache/b");
?>

http://www.bkjia.com/PHPjc/633122.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/633122.htmlTechArticlephp中移動複製檔案我們使用copy,下面我們來看一個簡單的執行個體,他實現了目錄與目錄檔案移動,希望此文章對大家協助。 方法一,copy+unl...

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.