0

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

现在我想将所有这些文件重命名为:Tue 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");
?>

任何帮助,将不胜感激!

4

2 回答 2

1

读入scandirreaddir php 函数。

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

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

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

于 2014-01-08T20:36:47.170 回答
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");
}
?> 
于 2014-01-08T20:42:23.163 回答