#### 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.

f = ftp (host)
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

close (f)

  Close the FTP connection represented by the FTP object f.

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

mget (f, file)
mget (f, dir)
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 string argument target is given, then it must indicate the path to the local destination directory. target may be a relative or absolute path.

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.

cd (f)
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.

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.

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.

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.

delete (f, file)

  Delete the remote file file over the FTP connection f.

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

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.

mkdir (f, path)

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

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

rmdir (f, path)

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

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