# file_transfer

Create a file transfer builder for rsync operations.

```rhai
conn.file_transfer() -> FileTransferBuilder
```

## Builder Methods

- `.archive(bool)` - Preserve permissions and times (-a flag)
- `.verbose(bool)` - Enable verbose output (-v flag)
- `.compress(bool)` - Compress during transfer (-z flag)
- `.delete(bool)` - Delete remote files not in source
- `.exclude(pattern)` - Add single exclude pattern
- `.exclude_patterns(array)` - Add multiple exclude patterns
- `.push(local, remote)` - Upload files to remote
- `.pull(remote, local)` - Download files from remote

## Examples

```rhai
let conn = ssh_builder().host("server.example.com").user("deploy").build();

// Upload files
let result = conn.file_transfer()
    .archive(true)
    .compress(true)
    .push("/local/app", "/remote/app")?;
print(result.output);
```

```rhai
let conn = ssh_builder().host("backup.example.com").build();

// Download with excludes
let result = conn.file_transfer()
    .archive(true)
    .exclude("*.log")
    .exclude("node_modules")
    .pull("/remote/data", "/local/backup")?;
```
