2010-05-13 111 views
1

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

可能没有一个现有的php类会为我做这一切,但如果任何人知道一个php类或其他可用的在线脚本,将处理很多这种逻辑将是伟大的。

+0

它为什么需要是PHP?你正在做文件管理 - 调用一个shell脚本可能会更快,更容易。 – dnagirl 2010-05-13 19:19:42

+0

一个shell脚本可以。我只是真的只知道PHP,所以我修改shell脚本的能力可能会受到限制。 – makeee 2010-05-13 19:34:05

+0

在Windoze中,我用一个简单的NT shell脚本(a/k/a批处理文件)和7-zip命令行exe完成了这种操作。我可以在这里发布演示,如果你需要它... – ewall 2010-05-13 19:49:53

回答

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(或其他)扩展名的文件的名称。然后它将这些名称,包括它们在新目录路径中的路径和子目录以及对原始文件更改的一些更改。我在替换中使用了,作为分隔符,因为转义所有这些路径分隔符是一种痛苦。最后,它将旧文件复制到新位置。由于您的目录需要可能比硬编码路径允许的复杂,因此您可以包含一行来解析您的文件路径/文件名并确定其目标路径应该是什么;并在替代中使用它。

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

您也可以决定findforeach更适合此操作,因为它可以根据需要随意下降目录结构。

相关问题