php rename () Приоритет устройства или ресурса

У меня есть код, который дает следующую ошибку:

Предупреждение:

[function.rename]: устройство или ресурс заняты

if ($handle = opendir($temp_images)) { /* This is the correct way to loop over the directory. */ while (false !== ($file = readdir($handle))) { if ($file == $file) { } $path = ''; $dir_handle = opendir($path); chdir($path); $oldfile = $path.$file ; $newfile = $path.preg_replace('/[\\&\\%\\$\\ ]+/', '-', $file); // replace &%$ with a - if(FALSE == rename($oldfile, $newfile)) { } } closedir($handle); } 

В чем проблема и как это исправить?

    если вы посмотрите на

     man 2 rename 

    или http://linux.die.net/man/2/rename

    ты увидишь

    EBUSY – переименование не выполняется, потому что oldpath или newpath – это каталог, который используется каким-то процессом (возможно, в качестве текущего рабочего каталога или в качестве корневого каталога или потому, что он открыт для чтения) или используется системой (например, как точка монтирования), в то время как система считает это ошибкой. (Обратите внимание, что нет необходимости возвращать EBUSY в таких случаях – нет ничего плохого в том, чтобы делать переименование в любом случае, но разрешено возвращать EBUSY, если система не может иначе обрабатывать такие ситуации.)

    просто напечатайте вывод, что вы пытаетесь переименовать, и вы увидите, что происходит