2017-08-11 201 views
1

我在「文件」文件夾中有4個csv文件&我想將這些文件的內容移動到另一個文件夾(即備份),文件在下面給出。如何在php中移動文件到另一個文件夾

1)abc.csv 2)abc1.csv 3)abc2.csv

$files = scandir('files'); 
 
$destination = 'backups/'; 
 
$date = date('Y-m-d'); 
 
foreach($files as $file){ 
 
$rename_file = $file.'_'.$date; 
 
move_uploaded_file($rename_file, "$destination"); 
 
}

+0

由於您沒有上傳任何文件,請改用'rename()'函數。 – JustBaron

回答

1

既然你不上傳任何文件,請嘗試rename()函數。

$Ignore = array(".","..","Thumbs.db"); 
$OriginalFileRoot = "files"; 
$OriginalFiles = scandir($OriginalFileRoot); 
$DestinationRoot = "backups"; 
# Check to see if "backups" exists 
if(!is_dir($DestinationRoot)){ 
    mkdir($DestinationRoot,0777,true); 
} 
$Date = date('Y-m-d'); 
foreach($OriginalFiles as $OriginalFile){ 
    if(!in_array($OriginalFile,$Ignore)){ 
     $FileExt = pathinfo($OriginalFileRoot."\\".$OriginalFile, PATHINFO_EXTENSION); // Get the file extension 
     $Filename = basename($OriginalFile, ".".$FileExt); // Get the filename 
     $DestinationFile = $DestinationRoot."\\".$Filename.'_'.$Date.".".$FileExt; // Create the destination filename 
     rename($OriginalFileRoot."\\".$OriginalFile, $DestinationFile); // rename the file    
    } 
} 
+0

複雜的代碼,但你得到我的投票根據編輯我的答案:)謝謝! – Dekel

+0

@Dekel是的,有點複雜,但認爲額外的變量值得一提:) – JustBaron

+0

@JustBaron我用你的代碼,但我得到錯誤「沒有這樣的文件或目錄」 – Shreya

-1

取下第二參數等move_uploaded_file($rename_file, $destination);

1

該功能將雙引號move_uploaded_file與上傳文件相關,而不適用於其他內容。

到文件系統中移動文件,你應該使用rename功能:

$files = scandir('files'); 
$destination = 'backups/'; 
$date = date('Y-m-d'); 
foreach($files as $file){ 
    if (!is_file($file)) { 
     continue; 
    } 
    $rename_file = $destination.$file.'_'.$date; 
    rename($file, $rename_file); 
} 
+0

我需要將這些文件移動到備份文件夾中,怎麼可能 – Shreya

+0

我錯過了'$ destination'那裏,檢查基於@JustBaron編輯更新到我的答案。 – Dekel

+0

我得到錯誤「No such file or folder」 – Shreya

相關問題