![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
perl-cgi「日時によるファイル操作」について
perl-cgiで、あるディレクトリ中のファイル更新日が最も若い2ファイルを表示して、それ以外を削除したいのですがどのようにすればよいでしょうか?
#調べたいディレクトリを読み込む。
$Dir = "./cache";
opendir DIR,"$Dir";
my @alldir = readdir DIR;
close DIR;
#ファイル(パス)名と作成日時を求める。
#最新2つのファイルパス(名)を表示する。
print "NewFile".ファイルパス1;
print "<HR>";
print "OldFile".ファイルパス2;
#最新2つ以外は全て削除
unlink($_);
exit(0);
No.2ベストアンサー
- 回答日時:
こんな感じではどうでしょう?
$Dir = "./cache";
#作業し易くする為、カレントディレクトリを変更
chdir($Dir);
opendir(DIR, "./");
@alldir = sort {(stat $a)[9] <=> (stat $b)[9]} grep(-f, readdir(DIR));
closedir(DIR);
print "NewFile" . pop(@alldir);
print "<HR>";
print "OldFile" . pop(@alldir);
unlink(@alldir);
#カレントディレクトリを元に戻す
chdir("../");
No.1
- 回答日時:
即席ですが、これはどうでしょう
$Dir = "./cache";
opendir DIR,"$Dir";
my @alldir = readdir DIR;
close DIR;
# ファイル名にパスを追加
@alldir = grep($_ = "$Dir/$_", @alldir);
# ディレクトリの除去
@alldir = grep(!-d $_, @alldir);
# 更新時間順にソート(昇順)
@alldir = sort {(stat $a)[9] <=> (stat $b)[9]} @alldir;
# 最新と2番目の最新
my $newfile = pop(@alldir);
my $oldfile = pop(@alldir);
print "Newfile: $newfile";
print "<HR>";
print "Oldfile: $oldfile";
# それ以外除去
foreach(@alldir){
unlink($_);
}
exit;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
dos変数の%~dp0は powershellで...
-
readdir()で得られるファイル・...
-
FindFirstFileとFindNextFileで...
-
batファイルでrenameができませ...
-
ディレクトリ内CSVデータをすべ...
-
コマンド「dir」の結果を、テキ...
-
ファイル名の文字コード(?)と...
-
バッチファイルの作り方(CSV→...
-
openした後、closeしないでプロ...
-
ExcelをCSV書き出す場合のシー...
-
VBAコードを張り付け後のエクセ...
-
VBAでCSVファイルを途中行まで...
-
エクセルVBA コードが同じでも...
-
データの日付でソートをしたい
-
awkスクリプトでダブルクォーテ...
-
VBAで巨大なファイルの途中から...
-
VBAでCSVファイルの特定行を書...
-
Perl エラーログを指定の場所...
-
PerlからのCSV出力
-
MATLAB グローバル変数の宣言
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
batファイルでrenameができませ...
-
Windowsで複数のファイルを同じ...
-
FindFirstFileとFindNextFileで...
-
パスから最後のディレクトリだ...
-
vba dir の相対パス
-
dos変数の%~dp0は powershellで...
-
ディレクトリ名を取得したい
-
readdir()で得られるファイル・...
-
LinuxのC言語で、ファイル名の...
-
サーバーにある特定の拡張子フ...
-
makefileでファイルをコピー(...
-
Perlで フォルダ内の全て...
-
chdirがうまくできない
-
指定したフォルダにアップロード
-
下のディレクトリ(3つ)に含ま...
-
複数ファイルの読み込みについて
-
Perl 特定のフォルダ以外削除
-
find関数が1階層(カレントディ...
-
Perlについて
-
一定時間が経過したフォルダの削除
おすすめ情報