Perl入門ゼミ

テキスト処理、Linuxサーバー管理、Web開発ならPerl
  1. Perl
  2. ファイル操作
  3. here

ファイルを移動する ファイル名を変更する

ファイルを移動するにはFile::Copyモジュールのmove関数を使用します。成功すれば真が、失敗すれば偽が返ります。またmove関数が失敗すれば、$! に、エラーの内容が、格納されます。

use File::Copy 'move';
move($file_from, $file_to);

ファイルをディレクトリに移動することもできます。

use File::Copy 'move';
move $file_from, $dir;

サンプル

ファイルを移動するサンプルです。

use strict;
use warnings;
use Fcntl;
use File::Copy 'move';

# ファイルを移動する( ファイル名を変更する )
my $file = "sample_20080522_$$.txt";
my $dir = "dir_20080522_$$";

# 準備 ファイルとディレクトリの作成
sysopen( my $fh, $file, O_WRONLY | O_CREAT | O_EXCL )
  or die "$file を作成することができません。: $!";
close $fh;
print "準備: '$file'が作成されました。\n";

mkdir $dir
  or die "$dir を作成することができません。 : $!";
print "準備: '$dir'が作成されました。\n\n";

print "1:ファイルを移動する。\n";
my $move_name = "$file.move";
if (move $file, $move_name) {
  print "$file は、 $move_name に移動しました。\n\n";
}
else {
  warn "$file を $move_name に移動できません。$!";
}

print "2;ファイルを指定したディレクトリに移動する。\n";
if (move $move_name, $dir) {
  print "$move_name は、 $dir に移動しました。\n\n";
}
else {
  warn "$move_name を $dir に移動できません。: $!";
}

(参考)sysopen関数Fcntl