[PR]今日のニュースは
「Infoseek モバイル」

iswebでCGI:ディレクトリを見る

今度は、指定したディレクトリにあるファイルの一覧を出力するCGIです。
opendir や readdir が動くんですね。という確認程度のものです。

動作例

ここを押すと、実行結果がわかります。↓
/cgi-bin/dir.cgi

ソースコード

ちょっと長くなりました。
でも、readdir で一覧を得て、リスト表示しているだけです。
ちなみに、stat がうまく動作しませんでしたので、 ディレクトリかどうかの判断をしていません。
リンクをたどって、なにも表示されなければ、ファイルだったんだなと思いましょう。

#!/usr/local/bin/perl
use CGI;
use strict;

my $cgi = new CGI;
my $dir = $cgi->escapeHTML($cgi->param('dir'));
$dir = "." if !$dir;
print $cgi->header, $cgi->start_html("File List : $dir");
print $cgi->h1($dir);
print "<ul>\n";
&show_dir($dir);
print "</ul>\n";
print $cgi->end_html;

sub show_dir {
	my($dir) = @_;
	my($i, @files, $st);

	if(!opendir(DIR, $dir)) {
		return;
	}
	@files = readdir(DIR);
	foreach $i (sort @files) {
		next if $i eq ".";
		print "<li><a href=\"dir.cgi?dir=$dir/$i\">" . &basename($i) .
			"</a>\n";
	}
	closedir(DIR);
}

sub basename {
	my($path) = @_;
	if($path =~ /.*\/([^\/]+)$/) {
		$1;
	} else {
		$path;
	}
}

▼ トップ

▼ プロフィール

▼ 個人的宣伝

LINUXサーバーインストール(FedoraCore4)
Oracle10gのバックアップを本気で理解し実践
FC4 や Oracle のインストールの仕方〜管理方法まで、詳しく載っています。 SearchManには情報がもりだくさんです。
いますぐ実践!Linuxシステム管理
システム管理初心者の方を対象に、システム管理のノウハウをお知らせします。
栗日記
毎日栗の絵を描いています。
退屈なとき、癒されたいときなどに、ご覧ください。:-)