创建文件/文件夹结构并将其压缩?

时间:2010-05-13 19:16:04

标签: php

我有一个图像文件目录,我需要一个php脚本或shell脚本来重命名它们,创建一个嵌套目录结构,然后将每个图像插入目录层次结构中的指定位置。理想情况下,我只需为每个文件指定一个父目录,为每个目录指定一个父目录,然后构建它。最后,我需要脚本来压缩整个事情。

可能没有现成的php类可以为我做这一切,但是如果有人知道一个php类或其他在线可用的脚本会处理很多这样的逻辑很好。

1 个答案:

答案 0 :(得分:1)

我知道它不是PHP,但你可能想调查这样的事情:

用于重命名文件的shell脚本(您的方言可能会有所不同,但手册页非常有用)。

foreach img (/path/to/directory/*.jpg)
  set newimg= `echo $img | sed 's,path/to/directory/(.+)\.jpg,new/path/$1newname.jpg/,'`
  cp img newimg
end

如果特定目录中的所有文件都位于一个位置,则上述内容可能会起作用。本质上,它遍历目标目录,获取具有.jpg(或其他)扩展名的文件的名称。然后它将获取这些名称,包括新目录路径中的路径和subs,以及对原始文件更改的一些更改。我在替换中使用,作为分隔符,因为转义所有这些路径分隔符是一件痛苦的事。最后,它将旧文件复制到新位置。

由于您的目录需求可能比硬编码路径允许的更复杂,因此您可以包含一行来解析文件路径/文件名并确定其目标路径应该是什么;并在替换中使用它。

可以找到一次性创建目录树的代码段here

您可能还认为findforeach更适合这个,因为它可以根据您的喜好下降目录结构。