ディレクトリ内検索関数
※見やすくするため全角スペースでインデント。注意
ディレクトリ内検索関数(再帰的には作ってないため、そのディレクトリ内のみ検索)
あんまり作りこんでないですのでたいした機能はない。残念。
///////////////////////////////////
PHP
///////////////////////////////////
引数1:ディレクトリパス ※ちなみに引数1が空だったり、ディレクトリじゃなかったりしたら空配列を返します(^^)
引数2:array("jpg","gif")を引数にした場合、ファイルの拡張子がjpgとgifのものを返す。
public function scanFiles($_dir, $search_ext=array()){
if (empty($_dir) || !is_dir($_dir)) return array();
$find_files = scandir($_dir);
if($find_files === false ){
return array();
}else{
foreach($find_files as $_key=>$_file){
$pathinfo = pathinfo($_file);
$ext = $pathinfo['extension'];
if( array_search($ext, $search_ext) !== false){
$files[] = $_file;
}
}
return $files;
}
}
Ruby
///////////////////////////////////
こっちはruby。
オマケ機能で、頭に_(アンダーバー)が付いてるもの以外をGET。
正規表現も苦手なので、勉強のためやってみた。
ても勉強にもならない簡単なのだけどw
PHPと違うのは、ディレクトリが直接指定。定数とか直して。
あと、こっちはディレクトリのみ検索。ファイル検索したい場合は
Dir.glob(search_dir + "/[^_]*/") ⇒ Dir.glob(search_dir + "/[^_]*")
にすれば良かった希ガス。
def scan_dir
dir_path = "#{RAILS_ROOT}/#{SEARCH_PATH}"
return Dir.glob(dir_path + "/[^_]*/").collect{|f|File.basename(f)}
end
ん~とりあえずこんなとこかな。