#navi(../)
* Perlでファイル・ディレクトリの有無を確認する [#s689054c]
Perlでファイル・ディレクトリの有無を確認するサンプルコードおよび実行結果を以下に記します。
#contents
#htmlinsert(ll_ads_top.html)
* 関連記事 [#bbefe04d]
-[[ファイルから1行ずつ読み込む方法>Perl/サンプル/ファイルから1行ずつ読み込む方法]]
-[[Perlでファイル・ディレクトリの有無を確認する>Perl/サンプル/ファイル・ディレクトリの有無を確認する]]
-[[Perlでディレクトリを作成する・mkdir・mkpath>Perl/サンプル/ディレクトリを作成する・mkdir・mkpath]]
-[[Perlでパーミッションを変更する・chmod>Perl/サンプル/パーミッションを変更する・chmod]]
* 動作確認環境 [#z5879413]
$ perl --version
This is perl 5, version 14, subversion 2 (v5.14.2) built for i686-linux-gnu-thread-multi-64int
(with 57 registered patches, see perl -V for more detail)
<省略>
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 12.04.4 LTS
Release: 12.04
Codename: precise
* ファイル・ディレクトリの有無を確認する [#l996b994]
ファイル・ディレクトリの有無を確認するためには以下の構文になります。
if (-e ファイル名orディレクトリ名) { ...
つまり、''-e''によりファイルおよびディレクトリの有無を確認することができます。
ファイル・ディレクトリの有無を確認するために以下のサンプルコードを紹介します。
#ref(exists.pl)
#!/usr/bin/perl
use strict;
use warnings;
my $fn = 'foo';
if (-e $fn) {
print "$fn is found.\n";
}
else {
print "$fn is not found.\n";
}
実行結果~
上記サンプルコードを端末上で実行した時の操作および出力です。
$ chmod +x exists.pl
$ ./exists.pl foo
foo is not found.
fooファイルが存在しないので''foo is not found.''が表示されます。
$ touch foo
$ ./exists.pl foo
foo is found.
touchコマンドでfooファイルを作成し再度実行しました。~
fooファイル存在するので''foo is not found.''が表示されます。
ディレクトリで実行試してみます。~
$ rm foo
$ mkdir foo
$ ./exists.pl
foo is found.
ディレクトリでも''-e''オプションの場合、ファイルが存在することになります。~
つまり、''-e''オプションはファイルまたはディレクトリの有無を確認することができます。
* ディレクトリかどうかを確認する [#z031656d]
ディレクトリかどうかを確認する構文は以下のようになります。
if (-f ファイル名) { ...
以下のサンプルコードを記します。
#ref(isdir.pl)
#!/usr/bin/perl
use strict;
use warnings;
my $dir = 'foo';
if (-f $dir) {
print "$dir directory not is found.\n";
}
else {
print "$dir directory is found.\n";
}
実行結果~
上記サンプルコードを端末上で実行した時の操作および出力です。
$ rm -fr foo
前回のサンプルコードで試したファイル(ディレクトリ)を削除します。
$ chmod +x isdir.pl
$ touch foo
$ ./isdir.pl
foo directory not is found.
fooファイルを作成しスクリプトを実行するとfoo directory not is found.が表示されます。
$ rm foo
$ mkdir foo
$ ./isdir.pl
foo directory is found.
fooファイルを削除しfooディレクトリを作成後スクリプトを実行するとfoo directory is found.が表示されます。
つまり、''-f''オプションによりファイルかどうかを確認することができます。~
オプション''-f''で偽の場合はディレクトリであるかファイルが存在しないことになります。
以上、Perlでファイルおよびディレクトリの有無を確認するサンプルコードでした。
#htmlinsert(ll_ads_btm.html)