2017-05-18 42 views
2

我試圖將目錄中的所有文件名更改爲大寫,並且什麼也沒有發生。文件名保持不變。這包括文件名和擴展名。我打開了錯誤報告,這是我得到的唯一警告:PHP strtoupper批量更改目錄中的文件名

警告:重命名(Parts /。,Parts /。):設備或資源在/ var/www/site/img/upper中繁忙。上行PHP 9

警告:重命名(份數/ ..,零件/ ..):行設備或資源忙在/var/www/site/img/upper.php 9

期望結果示例:abc.bmp - > ABC.BMP

代碼:

<?php 
ini_set("display_startup_errors", 1); 
ini_set("display_errors", 1); 
$directory="Parts"; 
$files = scandir($directory); 
foreach($files as $key=>$name){ 
    $oldName = $name; 
    $newName = strtoupper($name); 
    rename("$directory/$oldName","$directory/$newName"); 
    } 
?> 
+1

的可能的複製[PHP重命名()設備或資源忙(http://stackoverflow.com/questions/8638587/php-rename-device-or-resource-busy) –

+0

@Jessedegans完全不同,我無法從您提出的重複中獲得解決方案。 –

回答

1

您正在嘗試移動與目錄相關的元信息,請勿嘗試將...作爲文件移動。

  • 單期.表示當前工作目錄。
  • 雙期..表示當前工作目錄的父項。

    $directory = "Parts"; 
    $files = scandir($directory); 
    foreach($files as $name){ 
        if ($name == '.' || $name == '..') { 
         continue; 
        } 
        $newName = strtoupper($name); 
        rename("$directory/$name", "$directory/$newName"); 
    } 
    
+1

完全是它!非常感謝你的幫助! –

+0

完全重複的帖子@RoccoTheTaco點。 ; ) – JazZ

+1

這是一個更好的問題和答案。另一個清晰如泥。 –