我想用随机数字或字符重命名文件夹中的所有文件。
这是我的代码:
$dir = opendir('2009111');
$i = 1;
// loop through all the files in the directory
while ( false !== ( $file = readdir($dir) ) ) {
// do the rename based on the current iteration
$newName = rand() . (pathinfo($file, PATHINFO_EXTENSION));
rename($file, $newName);
// increase for the next loop
$i++;
}
// close the directory handle
closedir($dir);
但是我收到了这个错误:
警告:重命名(4(2).jpg,8243.jpg):系统找不到指定的文件
答案 0 :(得分:0)
您正在循环浏览目录2009111/
中的文件,但是在rename()
中没有目录前缀的情况下引用它们。
这样的事情应该会更好(虽然看到数据丢失的警告):
$oldName = '2009111/' . $file;
$newName = '2009111/' . rand() . (pathinfo($file, PATHINFO_EXTENSION));
rename($oldName, $newName);
当然,您可能希望将目录名称放在变量中或进行其他类似的调整。我仍然不清楚你为什么要这样做,并且根据你的目标,可能有更好的方法来达到它们。
警告!您使用的方法可能会导致数据丢失!可能会生成与现有文件同名的$newName
,{ {3}}覆盖目标文件。
您可能应该确保$newName
rename()
之前for a in range(1000000):
print('{:07d}'.format(a))
[RoutePrefix("api/SystemCheck")]
public class SystemCheckController : ApiController
{
[HttpGet]
[Route("")]
[Route("EnvironmentValidate")]
[RequiresPrivilegeMVC((int)PrivilegeType.SystemCheck)]
public IEnumerable<EnvironmentValidation> Get()
{
return FilteredEnvironmentValidate();
}
没有Get
。