2010-05-13 144 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更適合此操作,因爲它可以根據需要隨意下降目錄結構。

相關問題