§9.2 ディレクトリの操作


作成日:2001/12/08(土)

前節では、ディレクトリハンドルやディレクトリのオープンとクローズ等を見てきました。 この節では、ディレクトリの操作について紹介します。

ディレクトリの作成と削除

まず新しいディレクトリを作るにはmkdir関数を使います。 mkdir関数の構文は次の通りです。

 mkdir("ディレクトリ名", パーミッション);

mkdir関数は、引数としてディレクトリ名のほかにパーミッションのモード(8進数表現)を受け取ります(パーミッションについては「§8.7 パーミッション」を参照)。 次に例を紹介します。

 mkdir("newdir", 0777)
   or die "Could not make directory:$!";

上の例ではdie関数を使って、ディレクトリを作成できなかった場合のエラー処理をしています。 すでに存在するディレクトリを作成しようとすると、mkdir関数は偽を返すので注意が必要です。

次に、ディレクトリを削除するときにはrmdir関数を使います。

 rmdir("ディレクトリ名");

次に例を紹介します。

 rmdir("newdir")
   or die "Could not remove directory:$!";

rmdir関数は、削除しようとしているディレクトリの中が空の場合にだけ、そのディレクトリを削除してくれます。 ですから、

 mkdir("newdir", 0777)
   or die "Could not make directory:$!";
 open(FILE, ">./newdir/newfile");
 close(FILE);
 rmdir("newdir")
   or die "Could not remove directory:$!";

と言うスクリプトを実行するとエラーが出ます。 1度試してみてください。

ディレクトリの移動

Perlで作業ディレクトリを移動するときにはchdir関数を使います。 作業ディレクトリとは、パスのないファイル名を指定したときに、Perlがそのファイルを探す位置のことで、デフォルトではPerlを実行しているディレクトリのことです。

 chdir("ディレクトリのパス");

では例を紹介します。

 chdir("..")
   or die "Couldn't change directory to ..";
 #1つ上のディレクトリへ移動

この節ではディレクトリの作成、削除、移動について見てきました。 この章はこれでおしまいです。 次の章ではサブルーチンについて紹介します。


「§9.1 ディレクトリハンドル」へ 「§10.1 サブルーチンの宣言と呼び出し」へ
ソフトバンク パブリッシング株式会社

Copyright (C) can All Rights Reserved
e-mail:ishiki@mrj.biglobe.ne.jp