匿名質問者匿名質問者回答ポイント なしウォッチ

perlでファイル名でソートさせる方法


ディレクトリの中にある画像をファイル名順でソートさせて表示させたいです。
写真は日付+ナンバーで管理しようとしています。
(2017年1月1日の1枚目なら20170101_001.jpgのような感じでファイル名が小さい=古い写真となります)

現在以下の方法で「アップ時間(?)が新しい物が上にくる」ようにしていたのですが、FFFTPでアップするとなぜかたまに順番通りにアップしてくれない事があるのでファイル名順に変えようと思ってます。

##ディレクトリオープン
# 対象ディレクトリ(CGIを設置するディレクトリから見た位置を指定する
my $dir = "$dir$in{'vno'}";
opendir DIR, $dir;

# jpegファイルだけ取得
my @jpeg_files = grep { $_ =~ /\.jpe?g$/i } readdir DIR;
closedir DIR;

# 日付を取得して新しいのが上に来るようにする
my @sorted_files =
map { $_->[0] }
sort { $b->[1] <=> $a->[1] }
map { my @st = stat "$dir/$_"; [ $_, $st[9] ] } @jpeg_files;

foreach my $pname (@sorted_files) {
print <<"EOM";
<li><a href="./images/$in{'vno'}/$pname" class="fb" rel="g1"><IMG SRC="./images/$in{'vno'}/$pname" class="test"></a></li>
EOM
}
「my @sorted_files」の部分を変えればいいと思うのですが、どのように変更したらファイル名順に変わってくれますか?

ログインして回答する

ベストアンサー

その他の回答

この質問へのコメント

コメントはありません

この質問への反応(ブックマークコメント)

質問の情報

登録日時
2017-01-26 14:05:53
終了日時
2017-01-28 11:08:40
回答条件
1人5回まで

この質問のカテゴリ

この質問に含まれるキーワード

grep131Perl1679FFFTP144JPEG437ディレクトリ15252017年67Dir154

人気の質問

メニュー

PC版