使用数字重命名目录中的所有文件

时间:2011-10-16 18:57:47

标签: php

我想知道是否有人可以帮我为我编写一个PHP脚本,重命名序列中目录中的所有文件。

所以......

  • DSC_10342.JPG - > 1.JPG
  • DSC_10343.JPG - > 2.JPG
  • DSC_10344.JPG - > 3.JPG

    依此类推。

4 个答案:

答案 0 :(得分:8)

这是我的版本:

// open the current directory (change this to modify where you're looking)
$dir = opendir('.');

$i = 1;

// loop through all the files in the directory
while (false !== ($file = readdir($dir)))
{
    // if the extension is '.jpg'
    if (strtolower(pathinfo($file, PATHINFO_EXTENSION)) == 'jpg')
    {
        // do the rename based on the current iteration
        $newName = $i . '.jpg';
        rename($file, $newName);

        // increase for the next loop
        $i++;
    }
}

// close the directory handle
closedir($dir);

答案 1 :(得分:0)

使用rename重命名文件。您可以使用this handy script遍历目录中的所有文件:

<?php
if ($handle = opendir('.')) {
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != "..") {
            echo "$file\n";
        }
    }
    closedir($handle);
}
?>

然后,只需查看文件名($file)并确定要给他们的号码。如果您需要更多帮助,请告诉我,我会提供更多详细信息。

答案 2 :(得分:0)

试试这个:

$handler = opendir($directory);
$index = 1;
while ($file = readdir($handler)) {
    if ($file != "." && $file != "..") {
        rename($directory."/".$file, $directory."/".$index.".JPG");
        $index++;
    }

}
closedir($handler);

答案 3 :(得分:-1)

使用某人的代码片段,它看起来像这样:

<?php
$path = '.';
$i = 1;
if ($handle = opendir($path)) {
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != ".." && is_file($path.'/'.$file)) {
            $oldname   = $path.'/'.$file;
            $path_info = pathinfo($oldname);
            rename($oldname, $path.'/'.($i++).'.'.$path_info['extension']);
        }
    }
    closedir($handle);
}
?>

它将重命名包含所有扩展名的文件,并跳过目录中的目录。