/**
  * 文字列から例外を作成
  *
  * @return FtpException
  */
 public static function fromString($line)
 {
     $response = FtpResponse::fromString($line);
     if ($response === null) {
         throw new \InvalidArgumentException("unable parse response string.");
     }
     return new self($response->getMessage(), $response);
 }
 /**
  * 応答を受信する
  *
  * @return FtpResponse
  *
  * @throws TransportException
  */
 private function _recvResponse()
 {
     for (;;) {
         $line = $this->_control->recvline();
         $line = rtrim($line);
         $resp = FtpResponse::fromString($line);
         if ($resp) {
             return $resp;
         }
     }
 }