从目录的子目录创建双精度数组,后跟文件

动漫

我有一个名为images的目录,其中包含子目录。这些子目录中的每一个都包含图像。我想做的是编写一个函数,该函数返回一个索引为双$images[$subDirectory][$fileName]精度的数组,以使以后对其进行迭代变得简单。

我尝试编写下面的代码,看起来似乎很好,但是我不得不添加如下代码:

if ($subName === "." || $subName === ".." || $subName === ".DS_Store") continue;

这让我觉得自己做错了。是否有更好的方法可以解决此问题,或者这只是解决方案的必需部分?

function getImages($inDirectory) {
    if (!is_dir($inDirectory))
        failureExit("Not a directory: ".$inDirectory);

    if (!$dir = opendir($inDirectory))
        failureExit("Could not open: ".$inDirectory);

    $out = array();
    while (($subName = readdir($dir)) !== false) {
        if ($subName === "." || $subName === ".." || $subName === ".DS_Store") continue;
        if (is_dir($inDirectory."/".$subName)) {
            if (!$subDir = opendir($inDirectory."/".$subName))
                failureExit("Could not open: ".$inDirectory."/".$subDir);

            $out[$subName] = array();
            while (($subSubName = readdir($subDir)) !== false) {
                if ($subSubName === "." || $subSubName === ".." || $subSubName === ".DS_Store") continue;
                $out[$subName][$subSubName] = 0;
            }
            closedir($subDir);
        }
    }
    closedir($dir);

    return $out;
}

$images = getImages("images");
print_r($images);
模糊树

如果使用,RecursiveDirectoryIterator您可以利用SKIP_DOTS标志来跳过...,但是,您仍然必须指定任何.DS_Store要跳过的自定义目录

$iterator = new RecursiveIteratorIterator(
    new RecursiveDirectoryIterator(".",FileSystemIterator::SKIP_DOTS)
);

#note the leading './'
$skip_paths = array('./.DS_Store','./.SKIP_ME'); 
$images = array();

#$image an SPLFileInfo object
#http://php.net/manual/en/class.splfileinfo.php
foreach ($iterator as $image) {
    if($iterator->getDepth() === 1 && !in_array($image->getPath(),$skip_paths))
        $images[$image->getPath()][$image->getFilename()] = $image;
}

print_r($images);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在子目录中创建同名文件

来自分类Dev

从目录复制所有文件,而不创建子目录

来自分类Dev

在包含文件的每个目录下创建子目录

来自分类Dev

从多个txt文件创建多个目录和子目录

来自分类Dev

子目录中的文件?

来自分类Dev

子目录的Makefile目录创建

来自分类Dev

创建目录和子目录崩溃

来自分类Dev

在主目录中创建命名为文件的子目录,并将文件移动到相应的子目录

来自分类Dev

使用Java Nio创建子目录和文件

来自分类Dev

C:递归打开子目录并创建新文件

来自分类Dev

从子目录返回最后创建的csv文件

来自分类Dev

创建子目录并在其中插入文件

来自分类Dev

创建子目录并按日期组织文件

来自分类Dev

C:递归打开子目录并创建新文件

来自分类Dev

Tar创建并将文件拆分为子目录

来自分类Dev

在空子目录中递归创建空文件

来自分类Dev

查找文件,创建子目录并移动

来自分类Dev

git:检出文件创建子目录

来自分类Dev

删除随机创建的特定子目录中的文件

来自分类Dev

AWK-创建新的子目录并根据文件名将文件移动到该子目录中

来自分类Dev

如何创建钩子目录

来自分类Dev

如何为网站创建子目录?

来自分类Dev

如何拒绝用户创建子目录?

来自分类Dev

创建用于在目录和子目录内递归编译coffeescript文件的grunt任务

来自分类Dev

在目标目录的每个子目录中创建CSV文件

来自分类Dev

Shell脚本,用于按照模式创建目录,子目录和文件

来自分类Dev

创建单独的文本文件以列出每个目录和子目录中的内容

来自分类Dev

在父目录中创建与文件名相同的子目录

来自分类Dev

将目录和子目录中的过滤文件名列表放入数组中

Related 相关文章

热门标签

归档