2011-07-26 33 views
2

我用rename()將文件從源目錄移動到目標目錄。我可以有什麼建議嗎,如果我在這個過程中如何登錄過程。我想這將是這裏面:移動文件然後記錄所有內容

while(false !== ($file = readdir($handle))) { 
    if(is_file($src . '/' . $file)) { 
     rename($src . '/' . $file, $dest . '/' . $file); 
    } 
} 

日誌可以簡單地包含每個文件的成功轉讓,或者如果出現任何錯誤。

回答

0

重命名返回布爾值,你可以使用

+0

感謝擡頭。 – Dee

0

這應該做的伎倆:

$logfilename = 'log.txt'; // Or whatever you call it 
while(false !== ($file = readdir($handle))) { 
    if(is_file($src . '/' . $file)) { 
     if(rename($src . '/' . $file, $dest . '/' . $file)){ 
      file_put_contents($logfilename, 'Successfully renamed '. 
      '"'.$src . '/' . $file.'" to "'.$dest . '/' . $file.'"'.PHP_EOL, 
       FILE_APPEND); 
     }else{ 
      file_put_contents($logfilename, 'Failed to rename'. 
      '"'.$src . '/' . $file.'" to "'.$dest . '/' . $file.'"'.PHP_EOL, 
       FILE_APPEND); 
     } 
    } 
} 
+0

感謝PaulPRO,但是,如果像這樣rename()無法重命名文件,那麼PHP中是否存在任何內置函數?這是因爲我想將它包含在日誌中。謝謝。 – Dee

+0

@Dee,不幸的是,不幸的是,沒有函數內置到PHP的形式'rename_error();'你唯一的數據是成功或失敗,你從'rename()'返回值。 – Paulpro

+0

感謝您從我那裏得到的快速學習。 – Dee

0
$p=fopen('php://stderr','w'); 
while(false !== ($file = readdir($handle))) { 
    if(is_file($src . '/' . $file)) { 
    if(rename($src . '/' . $file, $dest . '/' . $file)) { 
     @fputs($p, "OK - mv $src/$file $dest/$file\n"); 
    } else { 
     @fputs($p, "ERROR - - mv $src/$file $dest/$file\n"); 
    } 
    } 
} 
@fclose($p); 
相關問題