<commit_before>
# FluentFTP
FluentFTP is a fully managed FTP client that is designed to be easy to use and easy to extend. It supports file and directory listing, uploading and dowloading files and SSL/TLS connections. It can connect to Unix and Windows/IIS based FTP servers. This project is entirely developed in managed C#. All credits go to [<NAME>](https://github.com/jptrosclair) for developing and maintaining the library till 2016. FluentFTP is released under the permissive MIT License.

## Latest Release
- [Nuget](https://www.nuget.org/packages/FluentFTP) (latest version)
- [Releases](https://github.com/hgupta9/FluentFTP/releases) (not updated very often)

## Features

- Supports FTP and FTPS (FTP over SSL)
- Passive and active data connections (PASV, EPSV, PORT and EPRT)
- Synchronous and asynchronous methods (`IAsyncResult` pattern) for all operations 
- File and directory listing for [various servers](#file-listings) (UNIX, IIS, DOS, etc)
- Easily upload and download a file from the server
- Easily read and write file data from the server using standard streams
- Create, append, read, write, rename and delete files and folders
- Recursively deletes folders and all its contents
- Get file/folder info (exists, size, security flags, modified date/time)
- Absolute or relative paths (relative to the "working directory")
- Get the hash/checksum of a file (SHA-1, SHA-256, SHA-512, and MD5)
- Supports DrFTPD's PRET command
- Supports FTP Proxies (User@Host, HTTP 1.1)
- Dereferencing of symbolic links
- SFTP is not supported as it is FTP over SSH, a completely different protocol (use [SSH.NET](https://github.com/sshnet/SSH.NET) for that)

### Implementation Notes

- Improves thread safety by cloning the FTP control connection for file transfers (can be disabled)
- Implements its own internal locking in an effort to keep transactions synchronized<commit_msg>move advanced notes to bottom<commit_after>
# FluentFTP
FluentFTP is a fully managed FTP client that is designed to be easy to use and easy to extend. It supports file and directory listing, uploading and dowloading files and SSL/TLS connections. It can connect to Unix and Windows/IIS based FTP servers. This project is entirely developed in managed C#. All credits go to [<NAME>](https://github.com/jptrosclair) for developing and maintaining the library till 2016. FluentFTP is released under the permissive MIT License.

## Latest Release
- [Nuget](https://www.nuget.org/packages/FluentFTP) (latest version)
- [Releases](https://github.com/hgupta9/FluentFTP/releases) (not updated very often)

## Features

- Supports FTP and FTPS (FTP over SSL)
- File and directory listing for [various servers](#file-listings) (UNIX, IIS, DOS, etc)
- Easily upload and download a file from the server
- Easily read and write file data from the server using standard streams
- Create, append, read, write, rename and delete files and folders
- Recursively deletes folders and all its contents
- Get file/folder info (exists, size, security flags, modified date/time)
- Absolute or relative paths (relative to the "working directory")
- Get the hash/checksum of a file (SHA-1, SHA-256, SHA-512, and MD5)
- Supports DrFTPD's PRET command
- Supports FTP Proxies (User@Host, HTTP 1.1)
- Dereferencing of symbolic links
- Passive and active data connections (PASV, EPSV, PORT and EPRT)
- Synchronous and asynchronous methods (`IAsyncResult` pattern) for all operations 
- SFTP is not supported as it is FTP over SSH, a completely different protocol (use [SSH.NET](https://github.com/sshnet/SSH.NET) for that)

### Implementation Notes

- Improves thread safety by cloning the FTP control connection for file transfers (can be disabled)
- Implements its own internal locking in an effort to keep transactions synchronized
{'fraction_non_alphanumeric': 0.07647679324894514, 'fraction_numerical': 0.007911392405063292, 'mean_word_length': 4.619259259259259, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 8, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6377211', 'n_tokens_mistral': 1117, 'n_tokens_neox': 1038, 'n_words': 501}