我需要使用attachment_fu重新處理一些文件,但不是所有的文件。如何使用Ruby/Rails或可能的PHP讀取目錄或文件信息?
我見過一些關於使用Ruby閱讀和列出目錄中的文件的問題,但有誰知道如何根據上傳日期或文件參數選擇文件?
我可以使用日期參數來上傳文件或查看jpg圖像的大小(100 x 100),如果它們沒有正確調整大小,我將需要調整這些大小。
關於如何訪問這些信息的任何想法,以便我可以給他們一個腳本,將使用attachment_fu重新處理文件?
謝謝! 辛迪
我需要使用attachment_fu重新處理一些文件,但不是所有的文件。如何使用Ruby/Rails或可能的PHP讀取目錄或文件信息?
我見過一些關於使用Ruby閱讀和列出目錄中的文件的問題,但有誰知道如何根據上傳日期或文件參數選擇文件?
我可以使用日期參數來上傳文件或查看jpg圖像的大小(100 x 100),如果它們沒有正確調整大小,我將需要調整這些大小。
關於如何訪問這些信息的任何想法,以便我可以給他們一個腳本,將使用attachment_fu重新處理文件?
謝謝! 辛迪
在PHP你可以使用SPL的DirectoryIterator
或FilesystemIterator
。迭代器擴展自SplFileInfo
,它爲文件屬性提供了一個舒適的API。
例子:
$it = new FilesystemIterator('/some/directory');
foreach ($it as $fileinfo) {
echo $fileinfo->getFilename() . "\n";
echo $fileinfo->getCTime() . "\n";
// etc ...
}
如果您需要遍歷更深的目錄,你可以用RecursiveDirectoryIterator
這樣做。關於如何做到這一點有許多問題。只需搜索一下。
以下腳本將以遞歸方式查找當前目錄中超過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將參數傳遞給程序。