« 目次

Movable Type オブジェクト・リファレンス

MT::FileMgr

概要

use MT::FileMgr;
my $fmgr = MT::FileMgr->new('Local')
or die MT::FileMgr->errstr;
defined(my $bytes = $fmgr->put($src, $dest))
    or die $fmgr->errstr;

解説

MT::FileMgrはファイル管理ドライバーを実装するためのベースとなるクラスです。ファイル管理を分離することにより、ファイルをローカルのディスク上に作成するかFTPを用いるか、といったことを他のクラスで考慮する必要がなくなります。たとえば、ユーザーのサイトを再構築するプロセスでは、内容の再構築のみを行って、その結果をMT::FileMgrドライバーに渡せばよく、再構築を行う側では、サイトがローカルにあるのかFTPサーバー上にあるのかを考慮する必要がありません。MT::FileMgrが即座に適切なドライバーへの処理を行い、必要な場所に内容を保存します。

利用方法

MT::FileMgr->new($type [, @args ])

$typeに指定したドライバー・クラス(現在は"FTP"と"Local"のみです)を読み込み、適切なドライバーのサブクラスにblessした新規ファイル・マネージャー・オブジェクトを返します。

@argsはオプションです。この引数は、ドライバー・サブクラスのinitメソッドに受け渡され、ドライバー固有の初期化に使用されます。たとえば、「FTP」ドライバーでは@args中にFTPホスト、ログイン名、パスワードが必要ですが、「Local」ホストは何も必要としません。

初期化エラーが起こったときにはundefを返します。次の「エラー処理」の項を参照してください。

$fmgr->put($src, $dest [, $type ])

$destで指定したパスの$srcというファイルに内容を出力します。$srcはファイルハンドルでもローカル・ファイルのパス名でもかまいません。$destはリモートまたはローカル(ドライバーによります)のファイル・パスでなければなりません。

$typeはオプションで、putがアップロード・ファイル用のものか、HTMLファイル出力かを指定します。これはFileMgrドライバーに対して、書き込みのモードやumask設定などを伝えるためのものです。$typeには"upload"か"output"が指定可能で、デフォルトは"output"です。戻り値は出力したバイト数(0のこともあります)になります。エラー発生時にはundefを返します。次の「エラー処理」の項を参照してください。

$fmgr->put_data($data, $dest [, $type ])

$dataに指定したデータ・ブロックを、$destに指定したパスに出力します。$srcはそのデータを含むスカラー値でなければなりません。また、$destはリモートまたはローカル(ドライバーによります)のファイル・パスでなければなりません。

$typeはオプションで、put_dataがアップロード・ファイル用のものか、HTMLファイル出力かを指定します。これはFileMgrドライバーに対して、書き込みのモードやumask設定などを伝えるためのものです。$typeには"upload"か"output"が指定可能で、デフォルトは"output"です。

戻り値は出力したバイト数(0のこともあります)になります。エラー発生時にはundefを返します。次の「エラー処理」の項を参照してください。

$fmgr->get_data($src [, $type ])

$srcに指定したパスからデータ・ブロックを取得し、取得したデータを返します。$srcリモートまたはローカル(ドライバーによります)のファイル・パスでなければなりません。

$typeはオプションで、get_dataがアップロード・ファイルからのものか、HTMLファイル出力かを指定します。これはFileMgrドライバーに対して、書き込みのモードやumask設定などを伝えるためのものです。$typeには"upload"か"output"が指定可能で、デフォルトは"output"です。エラー発生時にはundefを返します。次の「エラー処理」の項を参照してください。

$fmgr->exists($path)

$pathに指定したファイルまたはディレクトリが存在すればtrueを返し、存在しなければfalseを返します。

$fmgr->mkpath($path)

$pathに指定したパスを再帰的に作成します。つまり、パス中に一つでも存在しないものがあれば、それを作成します。成功するとtrueを返します。エラー発生時にはundefを返します。次の「エラー処理」の項を参照してください。

$fmgr->rename($src, $dest)

$srcに指定したファイルまたはディレクトリを$destにリネームします。成功するとtrueを返します。エラー発生時にはundefを返します。次の「エラー処理」の項を参照してください。

エラー処理

上のメソッドはすべて(existsを除きます)、エラー発生時にはundefを返します。エラー・メッセージは、そのクラスまたはオブジェクト(呼び出しメソッドがクラス・メソッドかインスタンス・メソッドかによります)のerrstrメソッドを呼び出すことで取得できます。たとえば、クラス名から呼び出した場合は次の例のようにエラー・メッセージを取得します。

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

また、オブジェクトから呼び出した場合には、次の例のように取得します。

defined(my $bytes = $fmgr->put($src, $dest))
    or die $fmgr->errstr;

Copyright © 2001-2006 Six Apart, Ltd. All Rights Reserved.