# PFTPClient Class Reference

File Transfer Protocol client channel class. More...

`#include <ftp.h>`

Inheritance diagram for PFTPClient:

List of all members.

## Public Member Functions

| PFTPClient ()
| Declare an FTP client socket.
| ~PFTPClient ()
| Delete and close the socket.
Overrides from class PSocket.
virtual PBoolean | Close ()
| Close the socket, and if connected as a client, QUITs from server.
New functions for class
bool | OpenHost (const PString &host, WORD port=DefaultPort)
| Open host using TCP.
PBoolean | LogIn (const PString &username, const PString &password)
| Log in to the remote host for FTP.
PString | GetSystemType ()
| Get the type of the remote FTP server system, eg Unix, WindowsNT etc.
PBoolean | SetType (RepresentationType type)
| Set the transfer type.
PBoolean | ChangeDirectory (const PString &dirPath)
| Change the current directory on the remote FTP host.
PString | GetCurrentDirectory ()
| Get the current working directory on the remote FTP host.
PStringArray | GetDirectoryNames (NameTypes type=ShortNames, DataChannelType channel=Passive)
| Get a list of files from the current working directory on the remote FTP host.
PStringArray | GetDirectoryNames (const PString &path, NameTypes type=ShortNames, DataChannelType channel=Passive)
| Get a list of files from the current working directory on the remote FTP host.
PBoolean | CreateDirectory (const PString &path)
| Create a directory on the remote FTP host.
PString | GetFileStatus (const PString &path, DataChannelType channel=Passive)
| Get status information for the file path specified.
PTCPSocket * | GetFile (const PString &filename, DataChannelType channel=Passive)
| Begin retreiving a file from the remote FTP server.
PTCPSocket * | PutFile (const PString &filename, DataChannelType channel=Passive)
| Begin storing a file to the remote FTP server.
PTCPSocket * | GetURL (const PURL &url, RepresentationType type, DataChannelType channel=Passive)
| Begin retreiving a file from the remote FTP server.

## Protected Member Functions

virtual PBoolean | OnOpen ()
| Call back to verify open succeeded in an PInternetProtocol class.
PTCPSocket * | NormalClientTransfer (Commands cmd, const PString &args)
PTCPSocket * | PassiveClientTransfer (Commands cmd, const PString &args)

## Protected Attributes

WORD | remotePort
| Port number on remote system.

## Detailed Description

File Transfer Protocol client channel class.

## Constructor & Destructor Documentation

PFTPClient::PFTPClient | ( |  | ) |

Declare an FTP client socket.

PFTPClient::~PFTPClient | ( |  | ) |

Delete and close the socket.

## Member Function Documentation

PBoolean PFTPClient::ChangeDirectory | ( | const PString & | dirPath | ) |

Change the current directory on the remote FTP host.

Returns:
  true if the log in was successfull.

Parameters:

  dirPath | New directory

virtual PBoolean PFTPClient::Close | ( |  | ) | `[virtual]`

Close the socket, and if connected as a client, QUITs from server.

Returns:
  true if the channel was closed and the QUIT accepted by the server.

Reimplemented from PIndirectChannel.

PBoolean PFTPClient::CreateDirectory | ( | const PString & | path | ) |

Create a directory on the remote FTP host.

Returns:
  true if the directory was created successfully.

Parameters:

  path | Name of the directory to create.

PString PFTPClient::GetCurrentDirectory | ( |  | ) |

Get the current working directory on the remote FTP host.

Returns:
  String for the directory path, or empty string if an error occurred.

PStringArray PFTPClient::GetDirectoryNames | ( | const PString & | path,
|  | NameTypes | type = `ShortNames`,
|  | DataChannelType | channel = `Passive` |
| ) |  |  |

Get a list of files from the current working directory on the remote FTP host.

Returns:
  String array for the files in the directory.

Parameters:

  path | Name to get details for.
  type | Detail level on a directory entry.
  channel | Data channel type.

PStringArray PFTPClient::GetDirectoryNames | ( | NameTypes | type = `ShortNames`,
|  | DataChannelType | channel = `Passive` |
| ) |  |  |

Get a list of files from the current working directory on the remote FTP host.

Returns:
  String array for the files in the directory.

Parameters:

  type | Detail level on a directory entry.
  channel | Data channel type.

PTCPSocket* PFTPClient::GetFile | ( | const PString & | filename,
|  | DataChannelType | channel = `Passive` |
| ) |  |  |

Begin retreiving a file from the remote FTP server.

The second parameter indicates that the transfer is on a normal or passive data channel. In short, a normal transfer the server connects to the client and in passive mode the client connects to the server.

Returns:
  Socket to read data from, or NULL if an error occurred.

Parameters:

  filename | Name of file to get
  channel | Data channel type.

PString PFTPClient::GetFileStatus | ( | const PString & | path,
|  | DataChannelType | channel = `Passive` |
| ) |  |  |

Get status information for the file path specified.

Returns:
  String giving file status.

Parameters:

  path | Path to get status for.
  channel | Data channel type.

PString PFTPClient::GetSystemType | ( |  | ) |

Get the type of the remote FTP server system, eg Unix, WindowsNT etc.

Returns:
  String for the type of system.

PTCPSocket* PFTPClient::GetURL | ( | const PURL & | url,
|  | RepresentationType | type,
|  | DataChannelType | channel = `Passive` |
| ) |  |  |

Begin retreiving a file from the remote FTP server.

The second parameter indicates that the transfer is on a normal or passive data channel. In short, a normal transfer the server connects to the client and in passive mode the client connects to the server.

Returns:
  Socket to read data from, or NULL if an error occurred.

Parameters:

  url | URL of file to get
  type | Type of transfer (text/binary)
  channel | Data channel type.

PBoolean PFTPClient::LogIn | ( | const PString & | username,
|  | const PString & | password |
| ) |  |  |

Log in to the remote host for FTP.

Returns:
  true if the log in was successfull.

Parameters:

  username | User name for FTP log in.
  password | Password for the specified user name.

PTCPSocket* PFTPClient::NormalClientTransfer | ( | Commands | cmd,
|  | const PString & | args |
| ) |  |  | `[protected]`

virtual PBoolean PFTPClient::OnOpen | ( |  | ) | `[protected, virtual]`

Call back to verify open succeeded in an PInternetProtocol class.

Reimplemented from PIndirectChannel.

bool PFTPClient::OpenHost | ( | const PString & | host,
|  | WORD | port = `DefaultPort` |
| ) |  |  |

Open host using TCP.

PTCPSocket* PFTPClient::PassiveClientTransfer | ( | Commands | cmd,
|  | const PString & | args |
| ) |  |  | `[protected]`

PTCPSocket* PFTPClient::PutFile | ( | const PString & | filename,
|  | DataChannelType | channel = `Passive` |
| ) |  |  |

Begin storing a file to the remote FTP server.

The second parameter indicates that the transfer is on a normal or passive data channel. In short, a normal transfer the server connects to the client and in passive mode the client connects to the server.

Returns:
  Socket to write data to, or NULL if an error occurred.

Parameters:

  filename | Name of file to get
  channel | Data channel type.

PBoolean PFTPClient::SetType | ( | RepresentationType | type | ) |

Set the transfer type.

Returns:
  true if transfer type set.

Parameters:

  type | RepresentationTypeof file to transfer

## Member Data Documentation

WORD PFTPClient::remotePort `[protected]`

Port number on remote system.

The documentation for this class was generated from the following file:

- ftp.h