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

  See also: @ftp/ascii, @ftp/binary, @ftp/cd, @ftp/close, @ftp/delete, @ftp/dir, @ftp/mget, @ftp/mkdir, @ftp/mput, @ftp/rename, @ftp/rmdir.

close `(f)` ¶

  Close the FTP connection represented by the FTP object f.

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

  See also: @ftp/ftp.

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.

  See also: @ftp/mput, @ftp/ftp.

mput `(f, file)` ¶
`file_list =` 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.

  The optional output argument file_list contains a cell array of strings with the names of the uploaded files.

  See also: @ftp/mget, @ftp/mkdir, @ftp/ftp.

`cwd =` cd `(f)` ¶
cd `(f, path)` ¶
`new_cwd =` 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.

  See also: @ftp/dir, @ftp/ftp.

dir `(f)` ¶
`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.

  If the optional output lst is requested return a struct array with one entry per file with the fields `name`, `date`, `bytes`, `isdir`, `datenum`.

  See also: @ftp/cd, @ftp/mkdir, @ftp/rmdir, @ftp/ftp.

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.

  See also: @ftp/binary, @ftp/ftp.

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.

  See also: @ftp/ascii, @ftp/ftp.

delete `(f, file)` ¶

  Delete the remote file file over the FTP connection f.

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

  See also: @ftp/rmdir, @ftp/rename, @ftp/ftp.

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.

  See also: @ftp/delete, @ftp/rmdir, @ftp/ftp.

mkdir `(f, path)` ¶

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

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

  See also: @ftp/rmdir, @ftp/ftp.

rmdir `(f, path)` ¶

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

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

  See also: @ftp/delete, @ftp/mkdir, @ftp/rename, @ftp/ftp.