给定目录,最后修改的第一级子目录重复

时间:2018-08-30 09:11:39

标签: php directory subdirectory

给出目录如何找到上一个修改后的一级子目录,然后将其内容复制到具有新名称的新目录中?

这是我到目前为止尝试过的:

<?php 
if(isset($_POST['duplicate'])){
    $path = "foldere/";

    $latest_ctime = 0;
    $latest_dir = '';    
    $d = dir($path);

    foreach ($d as $latest_dir) {
        // Skip current directory and parent directory
        if ($latest_dir == '.' || $latest_dir == '..') {
            continue;
        }
        while (false !== ($entry = $d->read())) {             

            $filepath = "{$path}/{$entry}";

            if(is_dir($filepath) && filectime($filepath) > $latest_ctime) {
                $latest_ctime = filectime($filepath);
                $latest_dir = $entry;
            }

        //end loop
        }
    }
} 
?>

但是我只是不知道如何使用新名称将内容复制到新文件夹中。

1 个答案:

答案 0 :(得分:0)

这是我的快速而肮脏的解决方案。

<?php
$dirs = [];

array_map(function ($d) use (&$dirs) {
    $dirs[filemtime($d)] = $d;
}, glob('./*', GLOB_ONLYDIR));

ksort($dirs);

$last = array_pop($dirs);
$new_name = "NewName";

shell_exec("cp -r $last $new_name");

考虑到我正在运行一个shell命令来复制目录,并且它不是真正可移植的,这是一种懒惰的方法。

但是我相信这对于自动化任务是有效的。