2010-06-25 25 views
1

我需要使用attachment_fu重新處理一些文件,但不是所有的文件。如何使用Ruby/Rails或可能的PHP讀取目錄或文件信息?

我見過一些關於使用Ruby閱讀和列出目錄中的文件的問題,但有誰知道如何根據上傳日期或文件參數選擇文件?

我可以使用日期參數來上傳文件或查看jpg圖像的大小(100 x 100),如果它們沒有正確調整大小,我將需要調整這些大小。

關於如何訪問這些信息的任何想法,以便我可以給他們一個腳本,將使用attachment_fu重新處理文件?

謝謝! 辛迪

回答

2

PHP你可以使用SPLDirectoryIteratorFilesystemIterator。迭代器擴展自SplFileInfo,它爲文件屬性提供了一個舒適的API。

例子:

$it = new FilesystemIterator('/some/directory'); 
foreach ($it as $fileinfo) { 
    echo $fileinfo->getFilename() . "\n"; 
    echo $fileinfo->getCTime() . "\n"; 
    // etc ... 
} 

如果您需要遍歷更深的目錄,你可以用RecursiveDirectoryIterator這樣做。關於如何做到這一點有許多問題。只需搜索一下。

1

以下腳本將以遞歸方式查找當前目錄中超過3天的名爲* .jpg的所有文件,並在命令行上輸出文件名。

#!/usr/bin/env ruby 

require 'rubygems' 
require 'active_support' 

AGE=3.days 
PATTERN="*.jpg" 

from_time = Time.now - AGE 

jpgfiles = File.join("**", PATTERN) 
Dir.glob(jpgfiles) do |file| 
    puts file if File.mtime(file) < from_time 
end 

如下

some_command_that_takes_a_filelist $(path_to_ruby_script) 

請注意,以上述方式使用它會爆破巨大的文件列表你可以在* nix的命令行中使用此。如果是這種情況,您可能需要使用xargs將參數傳遞給程序。

相關問題