MT::FileMgrでファイルの読み書きとか。

| コメント(0) | トラックバック(0)

発端はこれ。

何か古い記事が再掲載されてるということであれこれツッコミが入ってますね。

ベアワードのファイルハンドルはグローバルということですね。とはいえ、Googleとかで調べると実際出てくるのは比較的古いものが多いようで。

Movable Type(4.1)はどうしているんだろうと思って覗いてみたらみたらこんなコードが(App:CMSのcreate_dashboard_stats_file部分)。


    local *FOUT;
    if ( !open( FOUT, ">$file" ) ) {
        return;
    }

「local *FOUT;」とな。で、まぁそれは本題ではなくて、MTの場合はFileMgrを使うということなんだろうな。


use lib $ENV{MT_HOME} ? "$ENV{MT_HOME}/lib" : 'lib';

use MT;
use MT::FileMgr;

my $src    = 'Hello FileMgr!';
my $updata = 'Hello FileMgr! (Updated)';
my $out    = 'hello.txt';
my $put    = 'put.txt';
my $rename = 'rename.txt';
my $dir    = 'directory';

$out       = File::Spec->catdir( $dir, $out );
$put       = File::Spec->catdir( $dir, $put );
$rename    = File::Spec->catdir( $dir, $rename );

my $fmgr = MT::FileMgr->new( 'Local' ) or die MT::FileMgr->errstr;

print $fmgr->mkpath( $dir );

# directoryを作成する (成功した場合「1」)

print "¥n";

print $fmgr->exists( $dir );

# directoryが存在するか (存在する場合「1」)

print "¥n";

print $fmgr->can_write( $dir );

# directoryが書き込み可能か (書き込み可能な場合「1」)

print "¥n";

print $fmgr->put_data( $src, $out );

# directory/hello.txt に 'Hello FileMgr!' を書き込む (戻り値はバイト数)

print "¥n";

print $fmgr->put( $out , $put );

# directory/put.txt に hello.txt の中身を書き込む (戻り値はバイト数)

print "¥n";

print $fmgr->content_is_updated( $out, ¥$updata );

# directory/out.txt の中身(Hello FileMgr!)と $updata(Hello FileMgr! (Updated)) を比較する (値が異なる場合「1」)

print "¥n";

print $fmgr->rename( $put, $rename );

# directory/put.txt を directory/rename.txt にリネームする (成功した場合「1」)

print "¥n";

print $fmgr->get_data( $rename );

# directory/rename.txt の内容をprintする

実行結果


1
1
1
14
14
1
1
Hello FileMgr!

MT::FileMgr->new( 'Local' ) のところ、 MT::FileMgr->new( 'FTP',@args ) (@argsにFTPホスト、ログイン名、パスワードを入れる)とFTPサーバー上のファイル読み書きができる(らしい。そうなんだ...知らなかった)。

参考:

トラックバック(0)

トラックバックURL: http://junnama.alfasado.net/cgi/mt/mt-tb.cgi/80

コメントする

Facebook

Twitter

このブログ記事について

このページは、Junnama Nodaが2008年6月 3日 14:30に書いたブログ記事です。

ひとつ前のブログ記事は「CSS Nite in Osaka/Nagoya (Movable Type特集)。」です。

次のブログ記事は「なぜSEOは嫌われるのか?」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 6.2.6