#### 36.4.1 FTP Objects

Octave supports the FTP protocol through an object-oriented interface. Use the function `ftp` to create an FTP object which represents the connection. All FTP functions take an FTP object as the first argument.

Function File: f = ftp (host)
Function File: f = ftp (host, username, password)

  Connect to the FTP server host with username and password. If username and password are not specified, user `"anonymous"` with no password is used. The returned FTP object f represents the established FTP connection.

  The list of actions for an FTP object are shown below. All functions require an FTP object as the first argument.

  Method | Description
  --- | ---
  ascii | Set transfer type to ascii
  binary | Set transfer type to binary
  cd | Change remote working directory
  close | Close FTP connection
  delete | Delete remote file
  dir | List remote directory contents
  mget | Download remote files
  mkdir | Create remote directory
  mput | Upload local files
  rename | Rename remote file or directory
  rmdir | Remove remote directory

Function File: close (f)

  Close the FTP connection represented by the FTP object f.

  f is an FTP object returned by the `ftp` function.

Function File: mget (f, file)
Function File: mget (f, dir)
Function File: mget (f, remote_name, target)

  Download a remote file file or directory dir to the local directory on the FTP connection f. f is an FTP object returned by the `ftp` function.

  The arguments file and dir can include wildcards and any files or directories on the remote server that match will be downloaded.

  If a third argument target is given, then a single file or directory will be downloaded to the local directory and the local name will be changed to target.

Function File: mput (f, file)

  Upload the local file file into the current remote directory on the FTP connection f. f is an FTP object returned by the ftp function.

  The argument file is passed through the `glob` function and any files that match the wildcards in file will be uploaded.

Function File: cd (f)
Function File: cd (f, path)

  Get or set the remote directory on the FTP connection f.

  f is an FTP object returned by the `ftp` function.

  If path is not specified, return the remote current working directory. Otherwise, set the remote directory to path and return the new remote working directory.

  If the directory does not exist, an error message is printed and the working directory is not changed.

Function File: lst = dir (f)

  List the current directory in verbose form for the FTP connection f.

  f is an FTP object returned by the `ftp` function.

Function File: ascii (f)

  Set the FTP connection f to use ASCII mode for transfers. ASCII mode is only appropriate for text files as it will convert the remote host’s newline representation to the local host’s newline representation.

  f is an FTP object returned by the `ftp` function.

Function File: binary (f)

  Set the FTP connection f to use binary mode for transfers. In binary mode there is no conversion of newlines from the remote representation to the local representation.

  f is an FTP object returned by the `ftp` function.

Function File: delete (f, file)

  Delete the remote file file over the FTP connection f.

  f is an FTP object returned by the `ftp` function.

Function File: rename (f, oldname, newname)

  Rename or move the remote file or directory oldname to newname, over the FTP connection f.

  f is an FTP object returned by the ftp function.

Function File: mkdir (f, path)

  Create the remote directory path, over the FTP connection f.

  f is an FTP object returned by the `ftp` function.

Function File: rmdir (f, path)

  Remove the remote directory path, over the FTP connection f.

  f is an FTP object returned by the `ftp` function.