【perlメモ】ファイルの降順ソートをして昇順にタイムスタンプを振っていくスクリプト

auのT008で青空文庫する。 – KUMA TYPE

上の記事の絡みで、幾つかの青空文庫を画像に変換して携帯電話に送ろうとした処、ファイル名の番号部分が999までしか携帯電話が認識してくれないことが判明しました。それを超えた数値の番号のファイルは携帯電話に認識されません。やっぱりガラゲーはうんこですね。

ドグラ・マグラをTXT2JPGで変換したら2400ページ強になってしまったので、このままでは携帯電話に転送しても表示する事が出来ません。しょうがないので999ページごとにリセットして、1番からリネームすることにしました。

それから一つのフォルダーにおけるファイルは1000個かと思ってたら999個まででしたそれを超えるとやっぱり認識されません。やっぱりうんこです。しょうがないのでひとつのユーザーフォルダーに置くファイル数も999個に調整することにしました。

リネームは適当なリネームソフトをダウンロードしてきて通番で振りなおしたのですが、そのソフトがうんこでタイムスタンプまで書き換えてしまって結果ちゃんとソートされて表示されなくなりました。

タイムスタンプを振り直すソフトを探すのも面倒なので簡単なスクリプトを作成。カレントフォルダの.gifと.jpg拡張子のファイルを降順にソートしてそれに1分ずつずらしたタイムスタンプを振っていくという簡単なものです。一応ソースのせておきます。

これでとりあえず解決しました。

au_grp_timestamp.pl

my @files = ();
opendir(DIR,"./");
while(my $file = readdir(DIR)){
    next if($file eq ".");
    next if($file eq ".");
    next if( !-f $file);
    next if($file !~ /\.(gif|jpg)$/);

    print "$file\n";

    push(@files,$file);
}
closedir(DIR);

@files = reverse sort @files;

my $atime = time();
my $mtime = time();
my $cnt=0;
foreach my $file(@files){
    utime($atime, $mtime+$cnt, $file);
    $cnt+=60;
}

 

ガラゲーはなにかちょっとしたことをやろうとしても色々と制限があって面倒ですね。やっぱりスマホがほしくなる今日この頃です。

(Visited 161 times, 1 visits today)

タグ :