繁体   English   中英

无法重命名文件夹中的所有文件

[英]Unable to rename all the files in a folder

我一直在尝试使用以下代码段更改文件夹中所有图片文件的文件扩展名:

$dh = opendir('JS2C'); 
$files = array(); 
while (($file = readdir($dh)) !== false) { 
    if($file !== '.' && $file !== '..') {
        $file = pathinfo($file);
        rename($file, $new . '.jpg');
    }
}

我收到以下警告消息:

SCREAM: Error suppression ignored for
Warning: rename(ANAZODO.gif,ANAZODO.jpg): 
The system cannot find the file specified. (code: 2) in C:\wamp2\www\ckcportal\batch2.php on ...

包含文件的文件夹与PHP脚本位于同一文件夹中。

您必须提供完整路径,从您收到的错误,看起来您只是给出文件名。

rename('/path/to/old/file', '/path/to/new/file');

你为什么要使用$file = pathinfo($file); pathinfo创建一个assoc。 来自$file信息的数组,它应该给你完整的路径。 如果你拿出来,它应该工作。

除非你需要遵循:

$info = pathinfo($file);
$path = $info['dirname']

$new_file = $path . '/' . 'newfile.ext';

rename($file, $new_file);

您缺少重命名目录

$d = 'JS2C/'
$dh = opendir($d); 
while (($file = readdir($dh)) !== false) { 
    if($file !== '.' && $file !== '..') {
        //$file_no_ext = substr($file, 0,strrpos($file,'.'));// before php 5.2 

        $path_parts = pathinfo($file); // php 5.2
        $file_no_ext =  $path_parts['filename'];  // php 5.2

       rename($d.$file, $d.$file_no_ext . '.jpg');
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM