mieki256's diary



2003/06/04(水) [n年前の日記]

#2 [pc] ViXのフォルダ表紙画像は便利

便利だとは聞いていたけど、今まで使ってなかった。たしかに便利だ。_title.jpgなる画像が一つフォルダ内に増えてしまうのはちょっとアレだけど。しかしコレ、複数フォルダに対して一度に自動生成できないのだろうか。ヘルプを眺めてみたけどそれらしい解説は見つからず。ということでPerlでスクリプトを作った。
#!/usr/bin/perl
# カレントフォルダ以下を再帰的に辿り
# vixのフォルダ表紙画像(_title.jpg)を作成するPerlスクリプト。
#
# ・フォルダ中のjpgファイル名をソートして
#  最初のjpgファイルを _title.jpg というファイル名でコピー。
# ・既に _title.jpg が存在している場合は処理しない。
# ・pngやgifに対しては処理しない。手抜き。

use strict;
use File::Copy;

&check_dir('.');

print "何かキーを押してください";
my $c = getc;
exit 0;

sub check_dir {
	my($dirname) = @_;
	my @filelist;
	my @jpglist;

	opendir(DIR,"$dirname") || die "Can't open $dirname";
	@filelist = readdir(DIR);
	closedir(DIR);

	foreach ( sort {lc $a cmp lc $b} @filelist ) {
		next if /^\.{1,2}$/;
		if ( -d "$dirname/$_" ) {
			&check_dir("$dirname/$_");
		} else {
			if ( lc($_) =~ /\.jpg$/ ) {
				push(@jpglist,$_) unless /^_title\.jpg$/;
			}
		}
	}

	if ( @jpglist ) {
		my @list = sort {lc $a cmp lc $b} @jpglist;
		my $srcfn = "$dirname/$list[0]";
		my $dstfn = "$dirname/_title.jpg";
		if ( -e $dstfn ) {
			print "No Job.(found $dstfn)\n";
		} else {
			print "cp $srcfn $dstfn\n";
			copy( "$srcfn", "$dstfn" ) || die "Can't copy $srcfn to $dstfn";
		}
	} else {
		print "Not found $dirname/*.jpg\n";
	}
}

以上です。

過去ログ表示

Prev - 2003/06 - Next
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project