我有来自 PBX 系统的大量通话录音,我需要将它们分类到更易于管理的文件夹中。
作为一个 Linux 菜鸟,我如何搜索指定的文件夹并根据文件的日期将其移动到文件夹层次结构中。
示例我的文件夹结构为 2013/04/23。
然后我的文件的日期为
20130403-blah283.mp3 20130403-blah284.mp3 20130403-blah285.mp3 20130403-blah286.mp3 20130403-blah287.mp3
等等。任何帮助将不胜感激。
最佳答案
这可能会给您一个起点:
- 获取文件
- 遍历文件
- 创建新目录/文件名
- 如果存在则创建目录
- 复制文件
- 删除旧文件
型号:
<?php
$base_path = "/PATH_TO_FILES/";
//$files = glob($base_path."*.mp3");
$files = array('20130403-blah283.mp3','20130403-blah284.mp3','20130403-blah285.mp3','20130403-blah286.mp3','20130403-blah287.mp3'); // for testing
foreach($files as $file){
$pieces = explode("-",$file);
$new_filename = $pieces[1];
$timestamp = $pieces[0];
$directory = substr($timestamp,0,4)."/".substr($timestamp,4,2)."/".substr($timestamp,6)."/";
if(!is_dir($base_path.$directory)){
mkdir($directory,0777);
}
copy($base_path.$file,$base_path.$directory.$new_filename);
//unlink($base_path.$directory.$new_filename); // DELETES OLD FILE ONLY UNCOMMENT WHEN YOUR READY!
}
关于PHP 脚本将大文件夹中的文件排序到基于日期的子文件夹中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16178820/