# WriteFile

Required Frends version: 5.1+

Required .NET version: 6.0, standard2.0

Compatible Agents: Crossplatform, Legacy

Source code: <https://github.com/FrendsPlatform/Frends.FTP>

{% tabs %}
{% tab title="Parameter: Connection" %}

| Name                                  | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Address : `String`                    | <p>FTP(S) host address</p><p><br>Default: <code>-</code><br>Example: <code>my.ftp.server.com</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| Port : `Int32`                        | <p>Port number to use in the connection to the server.</p><p><br>Default: <code>21</code><br>Example: <code>21</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| UserName : `String`                   | <p>Username to use for authentication to the server. Note that the file endpoint only supports</p><p>username for remote shares and the username must be in the format DOMAIN\Username.</p><p><br>Default: <code>-</code><br>Example: <code>myUsername</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| 🗝Password : `String`                 | <p>Password to use in the authentication to the server.</p><p><br>Default: <code>-</code><br>Example: <code>myPassword</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| TransportType : `FtpTransportType`    | <p>Type of transfer: 'Ascii' sends files as text and must only be used for sending ASCII text files. 'Binary' (default) sends files as raw data and should be used for sending e.g. UTF-encoded text files</p><p>Possible values:</p><ul><li><code>Binary</code>:</li></ul><p>Type of transfer: 'Ascii' sends files as text and must only be used for sending ASCII text files. 'Binary' (default) sends files as raw data and should be used for sending e.g. UTF-encoded text files</p><ul><li><code>Ascii</code>:</li></ul><p>Type of transfer: 'Ascii' sends files as text and must only be used for sending ASCII text files. 'Binary' (default) sends files as raw data and should be used for sending e.g. UTF-encoded text files</p><p><br>Default: <code>0</code><br>Example: <code>FtpTransportType.Binary</code></p> |
| Mode : `FtpMode`                      | <p>Connection mode to use to connect to the FTP server</p><p>Possible values:</p><ul><li><code>Passive</code>:</li></ul><p>Connection mode to use to connect to the FTP server</p><ul><li><code>Active</code>:</li></ul><p>Connection mode to use to connect to the FTP server</p><p><br>Default: <code>0</code><br>Example: <code>FtpMode.Passive</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| KeepConnectionAliveInterval : `Int32` | <p>Sends NOOP command to keep connection alive at specified time-interval in seconds. If set to 0 the connection is not kept alive. Default value is 0</p><p><br>Default: <code>0</code><br>Example: <code>60</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| ConnectionTimeout : `Int32`           | <p>The length of time, in seconds, until the connection times out. You can use value 0 to indicate that the connection does not time out. Default value is 60 seconds</p><p><br>Default: <code>60</code><br>Example: <code>60</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| Encoding : `String`                   | <p>If set, this encoding will be used to encode and decode command parameters and server responses, such as file names. Example values: utf-8, utf-16, windows-1252</p><p><br>Default: <code>-</code><br>Example: <code>utf-8</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| BufferSize : `Int32`                  | <p>Integer value of used buffer size as bytes.</p><p>Default value is 4 KB.</p><p><br>Default: <code>4096</code><br>Example: <code>4096</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| UseFTPS : `Boolean`                   | <p>Whether to use FTPS or not.</p><p><br>Default: <code>False</code><br>Example: <code>false</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| SecureDataChannel : `Boolean`         | <p>Whether the data channel is secured or not.</p><p><br>Default: <code>True</code><br>Example: <code>true</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| SslMode : `FtpsSslMode`               | <p>Specifies whether to use Explicit or Implicit SSL</p><p>Possible values:</p><ul><li><code>None</code>:</li></ul><p>Specifies whether to use Explicit or Implicit SSL</p><ul><li><code>Explicit</code>:</li></ul><p>Specifies whether to use Explicit or Implicit SSL</p><ul><li><code>Implicit</code>:</li></ul><p>Specifies whether to use Explicit or Implicit SSL</p><ul><li><code>Auto</code>:</li></ul><p>Specifies whether to use Explicit or Implicit SSL</p><p><br>Default: <code>0</code><br>Example: <code>FtpsSslMode.None</code></p>                                                                                                                                                                                                                                                                             |
| EnableClientAuth : `Boolean`          | <p>If enabled the client certificate is searched from user's certificate store</p><p><br>Default: <code>False</code><br>Example: <code>false</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| ValidateAnyCertificate : `Boolean`    | <p>If enabled the any certificate will be considered valid.</p><p><br>Default: <code>False</code><br>Example: <code>false</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| ClientCertificatePath : `String`      | <p>Path to client certificate (X509).</p><p><br>Default: <code>-</code><br>Example: <code>c:\example.cer</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| CertificateHashStringSHA1 : `String`  | <p>Certificate SHA1 hash string to validate against.</p><p><br>Default: <code>-</code><br>Example: <code>D911262984DE9CC32A3518A1094CD24249EA5C49</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| {% endtab %}                          |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |

{% tab title="Parameter: Input" %}

| Name                                     | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Path : `String`                          | <p>Full path for the file to be written.</p><p><br>Default: <code>-</code><br>Example: <code>/ , /SubDir/test.txt</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| Content : `String`                       | <p>Text content to be written.</p><p><br>Default: <code>-</code><br>Example: <code>This is test file</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| CreateDestinationDirectories : `Boolean` | <p>Enables Task to create destination directories if they don't exist.</p><p><br>Default: <code>False</code><br>Example: <code>true</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| FileEncoding : `FileEncoding`            | <p>If set, this ecoding will be used to encode and decode command</p><p>parameters and server responses, such as file names.</p><p>By selecting 'Other' you can use any encoding.</p><p>Possible values:</p><ul><li><code>UTF8</code>:</li></ul><p>If set, this ecoding will be used to encode and decode command</p><p>parameters and server responses, such as file names.</p><p>By selecting 'Other' you can use any encoding.</p><ul><li><code>ANSI</code>:</li></ul><p>If set, this ecoding will be used to encode and decode command</p><p>parameters and server responses, such as file names.</p><p>By selecting 'Other' you can use any encoding.</p><ul><li><code>ASCII</code>:</li></ul><p>If set, this ecoding will be used to encode and decode command</p><p>parameters and server responses, such as file names.</p><p>By selecting 'Other' you can use any encoding.</p><ul><li><code>WINDOWS1252</code>:</li></ul><p>If set, this ecoding will be used to encode and decode command</p><p>parameters and server responses, such as file names.</p><p>By selecting 'Other' you can use any encoding.</p><ul><li><code>Other</code>:</li></ul><p>If set, this ecoding will be used to encode and decode command</p><p>parameters and server responses, such as file names.</p><p>By selecting 'Other' you can use any encoding.</p><p><br>Default: <code>1</code><br>Example: <code>FileEncoding.ANSI</code></p> |
| EnableBom : `Boolean`                    | <p>Additional option for UTF-8 encoding to enable bom.</p><p><br>Default: <code>False</code><br>Example: <code>true</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| EncodingInString : `String`              | <p>File encoding to be used.</p><p>Encoding don't support any unicode encoding. It only support the code page encodings.</p><p>A partial list of possible encodings: <https://learn.microsoft.com/en-us/dotnet/api/system.text.encoding.getencodings?view=net-6.0#examples>.</p><p><br>Default: <code>-</code><br>Example: <code>iso-8859-1</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| WriteBehaviour : `WriteOperation`        | <p>How the file write should work if a file with the new name already exists.</p><p>Possible values:</p><ul><li><code>Append</code>:</li></ul><p>How the file write should work if a file with the new name already exists.</p><ul><li><code>Overwrite</code>:</li></ul><p>How the file write should work if a file with the new name already exists.</p><ul><li><code>Error</code>:</li></ul><p>How the file write should work if a file with the new name already exists.</p><p><br>Default: <code>-</code><br>Example: <code>WriteOperation.Append</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| AddNewLine : `Boolean`                   | <p>If enabled new line is added to the existing file before appending the content.</p><p><br>Default: <code>False</code><br>Example: <code>true</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| {% endtab %}                             |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |

{% tab title="Result: Result" %}

| Name                       | Description                                                                             |
| -------------------------- | --------------------------------------------------------------------------------------- |
| Path : `String`            | <p>Full path to the written file.<br>Example: <code>/destination/newfile.txt</code></p> |
| SizeInMegaBytes : `Double` | <p>Size of the new file in destination.<br>Example: <code>3.2</code></p>                |
| {% endtab %}               |                                                                                         |

{% tab title="Changelog" %}

## Changelog

### \[1.1.0] - 2024-08-23

#### Changed

* Updated the Newtonsoft.Json package to version 13.0.3.

### \[1.0.0] - 2023-08-03

#### Added

* Initial implementation
  {% endtab %}
  {% endtabs %}
