%Net.FtpSession クラスを使用してファイルサイズを取得する方法はありますか?

ファイルサイズを取得する専用メソッドはありませんが、%Net.FtpSession クラスの sendCommand() メソッドを通してFTPのSIZEコマンドを呼び出し、サイズを取得できます。

簡単な利用例をご紹介します。(添付ファイルに以下クラス定義例が含まれています。)
 

/// %Net.FtpSessionクラスを継承しオリジナルメソッドを作成しています
Class MyNet.FtpSession Extends %Net.FtpSession
{
Method getSize(fname As %String, ByRef size As %Integer)
{
set type=..Type  // 現状のTypeを保存しておく
do ..Binary()
set st=..sendCommand("SIZE "_fname)   // SIZE
set size=..ReturnMessage
if type="Ascii" {
  do ..Ascii()
}
quit
}
}


ファイルサイズを取得する例は以下のとおりです。
 

 set ftp=##class(MyNet.FtpSession).%New()
 write ftp.Connect(ftpsrv,user,pass)  // FTPサイトへ接続ができると1が返ります。
 do ftp.getSize(fname,.fsize)         // 第2パラメータに指定したファイルのサイズが返ります
 write "ファイルサイズ : ",fsize,!
 write ftp.Logout()                   // 成功したら1が返ります


※ sendCommand() メソッドは [Internal] 属性が付与されているため将来変更される可能性があります。予めご了承ください。


該当する製品: Caché, Ensemble, HealthShare/Caché Based, IRIS Data Platform, HealthShare/IRIS Based, IRIS for Health
関連トピック: イメージファイルをFTPサーバからアップロード/ダウンロードすることはできますか?
添付ファイル: 参考資料(zip)

アンケートにご協力をお願いします
このトピックは参考になりましたか?
このトピックに関するお問い合わせ

FAQトップに戻る