Starksoft FTP/FTPS Component for .NET and Mono
Free, opensource, easy to use .NET 2.0+ / Mono 2.x Component for connecting to FTP servers.
- Use with .NET Framework 2.0, 3.0, 3.5, and 4.0 and Mono 2.x without recompiling.
- 100% CLR compliant C# managed code using .NET sockets - no third party code or dependencies.
- Execute commands in the background using fire and forget async command equivalents (OpenAsync(), PutFileAsync(), GetFileAsync(), etc).
- Transfer data both active and passive mode.
- Control which active ports to use better firewall support.
- Speed up data tranfers with built-in support for data compression (compress algorithm).
- Secure data transfers with FTPS (SSL 2.0, SSL 3.0, and TLS 1.0 explicit and implicit)
- Verify file upload and download file integrity with built-in support for CRC-32, SHA1, and MD5 hash checking to automatically compare files on server with XCRC, XSHA1, and XMD5 commands.
- Transfer files server-to-server using FXP.
- Retrieve file directory information as a standard DataSet object or an object collection for ease of use. Data bind the results directly to a data aware object.
- Extract symbolic link and permission information from UNIX directory listing formats.
- Easily log transfer events.
- Easily test to see if a file exists on the server with the method Exists().
- Retrieve recursive directory listing of files on the FTP server using the method GetDirListDeep().
- Upload and download files using any .NET stream object.
- Easily restart FTP transfer. Component will automatically figure out the restart byte position for you.
- Throttle data transfers with MaxUploadSpeed and MaxDownloadSpeed properties to prevent bandwidth staturation.
- Connect through HTTP and SOCKS v4, 4a, and 5 proxy servers.
- Parse UNIX and DOS directory listing formats. Parse UNIX file attributes and symbolic links.
- Create your own pluggable directory parser with your own code for archaic FTP directory listings by implementing the IFtpItemParser interface.
- Filter directory and file listings using wildcards and regular expressions.
- Monitor file transfer progress using events.
- Easily move files on the FTP server using the Move() method. This feature is especially useful when archiving data on the server after processing or downloading files.
- Transfer your files in binary or ASCII mode.
- Automatically adjusts date and time to the correct time zone of local machine.
- Supports SIZE FTP server command to retrieve the size of the file.
- Implements RFC 959 and RFC 1579.
|
// create a new FtpClient object with the host and port number to use // (optionally create a secure SSL connection) FtpClient ftp = new FtpClient("ftp.host.com", 21); // specify a binary, passive connection with no zlib file compression ftp.FileTransferType = TransferType.Binary; ftp.DataTransferMode = TransferMode.Passive; // open a connection to the ftp server ftp.Open("username", "password"); // change to the 'files' directory on the ftp server ftp.ChangeDirectory("files"); // retrieve a listing of the files in the directory 'files' // as a collection of FtpItem objects FtpItemCollection col = ftp.GetDirList(); // retrieve a file to disk // (optionally we could store it to any System.Stream object) ftp.GetFile("file.txt", @"c:\temp\file.text", FileAction.Create); // close connection to the ftp server ftp.Close(); |
