使用PHP和创建日期重命名目录中的所有文件

时间:2014-01-08 20:27:38

标签: php directory rename synology

我的Synology NAS有问题/挑战。我连接了一个IPcam,用以下文件名拍照: 00A8F700CB18()_ 1_20140107000224_3674.jpg

现在我想将所有这些文件重命名为: 星期二07-01-2014_11-17-26.jpg(包含日期和时间) 这里是踢球者:我见过(PHP)脚本使用“jhead”或“stat -c”,遗憾的是那些是Synology的一个选项! 当我使用单个文件时,我煮了一些东西,现在我想在目录中的所有文件上运行这个脚本! 请帮助,我不是一个经验丰富的PHP程序员,我在编写的解释行中感到非常高兴,给我和任何正在学习这个帖子学习曲线的人;)

您可以在单个文件上使用的脚本是这样的:

<?php
$stat = stat('/volume1/Ipcam/_Test/00A8F700CB18()_1_20140107000223_3673.jpg');
$motdate = ($stat['ctime']);
$newname =  (gmdate("D d-m-Y_H-i-s", $motdate));
rename("/volume1/Ipcam/_Test/00A8F700CB18()_1_20140107000223_3673.jpg" . "/volume1/Ipcam/_Test/" . $newname . ".jpg");
?>

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

阅读scandirreaddir php函数。

他们读取指定目录中的一堆文件,并返回一个文件名数组。

然后,您可以遍历这些文件并将上述代码应用于每个文件。

php.net上的示例非常易于使用和修改:)

答案 1 :(得分:0)

您可以使用代码修改

<?php
$dir    = '/volume1/Ipcam/_Test/';
$files = scandir($dir);
foreach($files as $file) {
$stat = stat($file);
$motdate = ($stat['ctime']);
$newname =  (gmdate("D d-m-Y_H-i-s", $motdate));
rename($file, $dir . $newname . ".jpg");
}
?>