# ftplib

# FTP

  FTPサーバーにクライアントとしてアクセスするためのクラスです．

## スーパークラス:

  `Object`

## クラスメソッド:

  `new([host, user, passwd, acct])`

    新しいインスタンスを生成します．

    hostが指定された場合，生成されたインスタンスに対して `connect`を呼び出し， さらにuserが指定された場合は `login`を呼び出します．

  `open(host[, user, passwd, acct])`

    hostを省略できない以外は `new`と同じです．

## メソッド:

  `connect(host[, port])`

    hostで指定されたホストに接続します．

  `sendcmd(cmd)`

    cmdで指定されたコマンドをサーバーに送り， サーバーからの応答を返します．

    応答コードが4xxの場合は例外FTPTermErrorが，5xxの場合は例外FTPPermErrorが 発生します．応答コードの最初の数字が1から5のどれでもない場合は 例外FTPProtoErrorが発生します．

  `voidcmd(cmd)`

    `sendcmd`と同様にサーバーにコマンドを送りますが，`nil`を返す点と， 応答コードが2xx以外の場合，例外FTPReplyErrorが発生する点が異なります．

  `login([user, passwd, acct])`

    ログイン処理を行ないます．

    userが省略された場合，`anonymous`でログインします．

  `retrbinary(cmd, blocksize, callback)`
  `retrbinary(cmd, blocksize) {...}`

    サーバーにcmdで指定されたコマンドを送り，バイナリデータを 取り寄せます．blocksizeで指定されたバイト単位でデータを 読み込み，callbackで指定された`Proc`オブジェクトまたは ブロックに読み込んだデータを渡します．

  `retrlines(cmd[, callback]) [{...}]`

    サーバーにcmdで指定されたコマンドを送り，テキストデータを 取り寄せます．一行ずつテキストを読み込み，callbackで指定された Procオブジェクトまたはブロックに読み込んだ行を渡します．

    callbackもブロックも省略された場合は読み込んだ行を printします．

  `storbinary(cmd, file blocksize[, callback]) [{...}]`

    サーバーにcmdで指定されたコマンドを送り，バイナリデータを 送ります．blocksizeで指定されたバイト単位で fileからデータを読み込み，サーバーに送ります．

    callbackやブロックが指定された場合はデータが 送信されるごとにそれを呼び出します．

  `storlines(cmd, file[, callback]) [{...}]`

    サーバーにcmdで指定されたコマンドを送り，テキストデータを 送ります．一行ずつでfileからテキストを読み込み， サーバーに送ります．

    callbackやブロックが指定された場合はデータが 送信されるごとにそれを呼び出します．

  `getbinaryfile(remotefile, localfile, blocksize[, callback]) [{...}]`

    サーバー上のバイナリファイルを`get`します．

    callbackやブロックが指定された場合は データが送信されるごとにそれを呼び出します．

  `gettextfile(remotefile, localfile[, callback]) [{...}]`

    サーバー上のテキストファイルを`get`します．

    callbackやブロックが指定された場合は データが送信されるごとにそれを呼び出します．

  `putbinaryfile(localfile, remotefile, blocksize[, callback]) [{...}]`

    サーバーにバイナリファイルをputします．

    callbackやブロックが指定された場合は データが送信されるごとにそれを呼び出します．

  `puttextfile(localfile, remotefile[, callback]) [{...}]`

    サーバーにテキストファイルを`put`します．

    callbackやブロックが指定された場合は データが送信されるごとにそれを呼び出します．

  `acct(account)`

    サーバーにアカウント情報を送ります．

  `nlst([dir])`

    dirで指定したディレクトリのファイルの配列を返します． dirを省略した場合カレントディレクトリが指定されます．

  `list(arg...) [{...}]`
  `ls(arg...) [{...}]`
  `dir(arg...) [{...}]`

    `LIST`コマンドを送信し，結果を返します．

    ブロックとともに呼び出された場合は各行に対してブロックを 実行します．

  `rename(oldname, newname)`

    ファイルをリネームします．

  `delete(filename)`

    ファイルを削除します．

  `chdir(path)`

    カレントディレクトリをpathに変更します．

  `size(filename)`

    ファイルのサイズを返します．

  `mtime(filename[,local])`

    filenameの更新時刻をTimeオブジェクトで返します． localは，更新時刻をローカル時刻とみなすかどうかの フラグです．(省略したときのデフォルト値はfalseです)．

  `mkdir(dirname)`

    ディレクトリを作成します．

  `rmdir(dirname)`

    ディレクトリを削除します．

  `pwd`
  `getdir`

    カレントディレクトリを返します．

  `system`

    サーバーのOSのタイプを返します．

  `abort`

    データの転送を中止します．

  `status`

    現在の状態を返します．

  `mdtm(filename)`

    `MDTM`コマンドを送信し，結果を返します．

  `help`

    help情報を返します．

  `quit`

    ログアウトします．

  `close`

    接続を切ります．

  `closed?`

    接続が切れている時に真を返します．