# Fastcopy File Transfer Accelerator

> High-performance multi-threaded file copying and synchronization utility for Windows with advanced caching and verification

- Skill: `aradotso/fastcopy-file-transfer-accelerator` (Agent Skill)
- Install (CLI): `npx skillmds@latest add aradotso/fastcopy-file-transfer-accelerator`
- Raw SKILL.md: https://api.skillmd.com/api/skills/aradotso/fastcopy-file-transfer-accelerator/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: aradotso (https://skillmd.com/u/aradotso)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/aradotso/fastcopy-file-transfer-accelerator

---


# FastCopy File Transfer Accelerator

> Skill by [ara.so](https://ara.so) — Devtools Skills collection.

FastCopy is a high-performance file copying and synchronization utility for Windows that uses multi-threaded I/O to maximize transfer speeds. It supports parallel streams, integrity verification, resume capabilities, and intelligent buffer management.

## Installation

**Windows (Recommended):**
```powershell
# Download from official source
# Visit: https://fastcopy.jp/en/

# Or using winget
winget install FastCopy

# Portable version - extract to desired location
Expand-Archive fastcopy-portable.zip -DestinationPath C:\Tools\FastCopy
```

**Add to PATH (optional):**
```powershell
$env:PATH += ";C:\Program Files\FastCopy"
# Or for portable:
$env:PATH += ";C:\Tools\FastCopy"
```

## Core Commands

### Basic Syntax
```cmd
fastcopy.exe [source] [destination] [options]
```

### Common Operations

**Simple copy:**
```cmd
fastcopy "C:\Source\Files" "D:\Backup\" /cmd=diff
```

**Mirror synchronization:**
```cmd
fastcopy "C:\Projects" "E:\Archive\Projects" /cmd=sync /force_close
```

**Move files:**
```cmd
fastcopy "C:\Temp\Downloads" "D:\Storage" /cmd=move
```

**Verify after copy:**
```cmd
fastcopy "C:\Data" "\\NAS\Backup" /cmd=diff /verify
```

## Key Command Options

| Option | Description | Example |
|--------|-------------|---------|
| `/cmd=` | Copy mode: `diff`, `sync`, `move`, `delete` | `/cmd=sync` |
| `/bufsize=` | Buffer size in MB (default: auto) | `/bufsize=256` |
| `/verify` | Verify files after transfer | `/verify` |
| `/linkdest` | Create hardlinks instead of copy | `/linkdest` |
| `/exclude=` | Exclude patterns | `/exclude="*.tmp;*.log"` |
| `/include=` | Include only patterns | `/include="*.jpg;*.png"` |
| `/force_close` | Force close open files | `/force_close` |
| `/log` | Enable logging | `/log` |
| `/logfile=` | Specify log file path | `/logfile="C:\Logs\copy.log"` |
| `/error_stop` | Stop on first error | `/error_stop` |
| `/acl` | Copy ACL/permissions | `/acl` |
| `/stream` | Copy alternate data streams | `/stream` |

## Configuration Profiles

FastCopy uses `.ini` files for configuration. Create reusable profiles:

**Example: High-Speed Transfer Profile**
```ini
[main]
bufsize=512
estimate=1
verify=1
wipe_del=0
acl=0
stream=0
reparse=0
verify_mode=0
maxhist=20

[SyncProfile]
source=C:\Source
dest=D:\Destination
command=sync
bufsize=256
verify=1
filter_mode=0
exclude=*.tmp;*.log;.git
```

**Load profile from command line:**
```cmd
fastcopy /cmd=sync /ini="C:\FastCopy\profiles\backup.ini"
```

## Advanced Usage Patterns

### Automated Backup Script
```batch
@echo off
REM backup-script.bat
SET FASTCOPY="C:\Program Files\FastCopy\FastCopy.exe"
SET SOURCE=C:\Important\Data
SET DEST=E:\Backups\%DATE:~-4,4%%DATE:~-10,2%%DATE:~-7,2%
SET LOGFILE=C:\Logs\backup-%DATE:~-4,4%%DATE:~-10,2%%DATE:~-7,2%.log

REM Create timestamped backup with verification
%FASTCOPY% "%SOURCE%" "%DEST%" ^
  /cmd=diff ^
  /bufsize=256 ^
  /verify ^
  /acl ^
  /stream ^
  /error_stop ^
  /log ^
  /logfile="%LOGFILE%" ^
  /exclude="*.tmp;*.cache;thumbs.db" ^
  /force_close

if %ERRORLEVEL% EQU 0 (
    echo Backup completed successfully
) else (
    echo Backup failed with error %ERRORLEVEL%
    exit /b %ERRORLEVEL%
)
```

### PowerShell Integration
```powershell
# fastcopy-wrapper.ps1
function Invoke-FastCopy {
    param(
        [Parameter(Mandatory=$true)]
        [string]$Source,
        
        [Parameter(Mandatory=$true)]
        [string]$Destination,
        
        [ValidateSet('diff', 'sync', 'move', 'delete')]
        [string]$Mode = 'diff',
        
        [int]$BufferSize = 256,
        
        [switch]$Verify,
        
        [string[]]$Exclude = @(),
        
        [string]$LogPath
    )
    
    $fastcopyPath = "C:\Program Files\FastCopy\FastCopy.exe"
    
    $arguments = @(
        "`"$Source`"",
        "`"$Destination`"",
        "/cmd=$Mode",
        "/bufsize=$BufferSize"
    )
    
    if ($Verify) {
        $arguments += "/verify"
    }
    
    if ($Exclude.Count -gt 0) {
        $excludePattern = $Exclude -join ";"
        $arguments += "/exclude=`"$excludePattern`""
    }
    
    if ($LogPath) {
        $arguments += "/log"
        $arguments += "/logfile=`"$LogPath`""
    }
    
    $arguments += "/force_close"
    
    Write-Host "Starting FastCopy: $($arguments -join ' ')"
    
    & $fastcopyPath $arguments
    
    if ($LASTEXITCODE -eq 0) {
        Write-Host "Transfer completed successfully" -ForegroundColor Green
        return $true
    } else {
        Write-Host "Transfer failed with exit code: $LASTEXITCODE" -ForegroundColor Red
        return $false
    }
}

# Usage example
Invoke-FastCopy `
    -Source "C:\Projects" `
    -Destination "\\NAS\Backup\Projects" `
    -Mode sync `
    -BufferSize 512 `
    -Verify `
    -Exclude @("*.tmp", "*.log", "node_modules", ".git") `
    -LogPath "C:\Logs\project-sync.log"
```

### Network Transfer Optimization
```cmd
REM For network transfers (SMB/CIFS), optimize buffer and streams
fastcopy "C:\LocalData" "\\RemoteServer\Share\Data" ^
  /cmd=sync ^
  /bufsize=512 ^
  /verify ^
  /no_ui ^
  /force_close ^
  /acl ^
  /log

REM For very large files (video, databases), increase buffer
fastcopy "C:\Videos" "D:\Archive" ^
  /cmd=diff ^
  /bufsize=1024 ^
  /verify
```

## Scheduled Task Integration

**Create scheduled backup (PowerShell):**
```powershell
$action = New-ScheduledTaskAction `
    -Execute "C:\Program Files\FastCopy\FastCopy.exe" `
    -Argument '"C:\Data" "E:\Backup" /cmd=sync /verify /log /force_close'

$trigger = New-ScheduledTaskTrigger -Daily -At 2am

$principal = New-ScheduledTaskPrincipal `
    -UserId "SYSTEM" `
    -LogonType ServiceAccount `
    -RunLevel Highest

Register-ScheduledTask `
    -TaskName "FastCopy Daily Backup" `
    -Action $action `
    -Trigger $trigger `
    -Principal $principal `
    -Description "Automated daily backup using FastCopy"
```

## Performance Tuning

### Buffer Size Selection
```cmd
REM Small files (< 100MB total): 32-64MB buffer
fastcopy "C:\Documents" "D:\Backup" /cmd=diff /bufsize=64

REM Medium files (100MB-10GB): 128-256MB buffer
fastcopy "C:\Projects" "E:\Archive" /cmd=sync /bufsize=256

REM Large files (> 10GB): 512-1024MB buffer
fastcopy "C:\Videos" "F:\Media" /cmd=diff /bufsize=1024

REM Network transfers: 256-512MB buffer
fastcopy "C:\Data" "\\NAS\Share" /cmd=sync /bufsize=512
```

### Exclude Common Temporary Files
```cmd
fastcopy "C:\Development" "D:\Backup\Dev" ^
  /cmd=sync ^
  /exclude="*.tmp;*.log;*.cache;node_modules;.git;.svn;bin;obj;target;__pycache__;.vs;.vscode;*.swp;*.swo;Thumbs.db;.DS_Store"
```

## Common Patterns

### Mirror Backup (Delete Removed Files)
```cmd
REM Sync mode mirrors source to destination (deletes extra files)
fastcopy "C:\ActiveProject" "E:\Backups\ActiveProject" ^
  /cmd=sync ^
  /verify ^
  /log
```

### Incremental Backup (Keep Extra Files)
```cmd
REM Diff mode only copies new/changed files (keeps extra files)
fastcopy "C:\ActiveProject" "E:\Backups\ActiveProject" ^
  /cmd=diff ^
  /verify ^
  /log
```

### Safe Move with Verification
```cmd
fastcopy "C:\Completed\Archive" "D:\LongTerm\Archive" ^
  /cmd=move ^
  /verify ^
  /error_stop ^
  /log
```

### Hardlink Deduplication
```cmd
REM Create hardlinks for duplicate files to save space
fastcopy "C:\Media" "D:\Deduplicated" ^
  /cmd=diff ^
  /linkdest ^
  /verify
```

## Troubleshooting

### Access Denied Errors
```cmd
REM Run with elevated privileges and force close open files
fastcopy "C:\LockedFiles" "D:\Backup" ^
  /cmd=diff ^
  /force_close ^
  /acl

REM Skip files that can't be accessed
fastcopy "C:\System" "D:\Backup" ^
  /cmd=diff ^
  /skip_empty_dir ^
  /verify
```

### Network Path Issues
```cmd
REM Use UNC paths explicitly
fastcopy "\\Server1\Share\Data" "\\Server2\Backup\Data" ^
  /cmd=sync ^
  /bufsize=256 ^
  /force_close

REM Map network drive first if UNC fails
net use Z: \\Server\Share /user:DOMAIN\Username
fastcopy "C:\Local" "Z:\Backup" /cmd=sync
net use Z: /delete
```

### Verify Failures
```cmd
REM Check disk space and permissions
fastcopy "C:\Source" "D:\Dest" ^
  /cmd=diff ^
  /verify ^
  /log ^
  /logfile="C:\Logs\verify-debug.log"

REM Review log for specific verification errors
```

### Performance Issues
```cmd
REM Reduce buffer size if running out of memory
fastcopy "C:\Data" "D:\Backup" /cmd=diff /bufsize=64

REM Disable verification for initial bulk transfer
fastcopy "C:\Massive" "E:\Archive" /cmd=diff /bufsize=512

REM Then verify separately
fastcopy "C:\Massive" "E:\Archive" /cmd=diff /verify /open_window
```

## Exit Codes

- `0` - Success
- `1` - Error occurred during copy
- `2` - Fatal error (unable to continue)
- `3` - User cancelled operation

**Handle exit codes in scripts:**
```batch
@echo off
fastcopy "C:\Source" "D:\Dest" /cmd=sync /verify

if %ERRORLEVEL% EQU 0 (
    echo Success
    exit /b 0
) else if %ERRORLEVEL% EQU 1 (
    echo Partial failure - check logs
    exit /b 1
) else (
    echo Fatal error
    exit /b 2
)
```

## Environment Variables

```powershell
# Set default FastCopy path
$env:FASTCOPY_PATH = "C:\Program Files\FastCopy\FastCopy.exe"

# Set default log directory
$env:FASTCOPY_LOGS = "C:\Logs\FastCopy"
```

Use in scripts:
```batch
%FASTCOPY_PATH% "C:\Source" "D:\Dest" /log /logfile="%FASTCOPY_LOGS%\copy.log"
```

