![]()
# Check if USB/SD card is fake
filedo E: test del
# Test drive performance
filedo C: speed 100
# Secure wipe free space
filedo D: fill 1000 del
# Find and manage duplicate files
filedo C: check-duplicates
filedo D: cd old del
# Copy files with progress tracking
filedo folder C:\Source copy D:\Backup
filedo device E: copy F:\Archive
# Fast wipe folder contents
filedo folder C:\Temp wipe
filedo folder D:\Cache w
# Show device info
filedo C: info
# Compare two folders and show summary + save report
filedo compare D:\Data E:\Backup
# Compare and delete (permanent, no confirmation)
filedo cmp D:\Data E:\Backup del source # delete in Source if also exists in Target
filedo cmp D:\Data E:\Backup del target # delete in Target if also exists in Source
filedo cmp D:\Data E:\Backup del old # delete older side (by mtime), equal time: skip
filedo cmp D:\Data E:\Backup del new # delete newer side (by mtime), equal time: skip
filedo cmp D:\Data E:\Backup del small # delete smaller side, equal size: skip
filedo cmp D:\Data E:\Backup del big # delete bigger side, equal size: skip
# Optional side qualifier (only apply when that side matches)
filedo cmp D:\Data E:\Backup del small source # only if smaller is on Source
filedo cmp D:\Data E:\Backup del big target # only if bigger is on Target
filedo cmp D:\Data E:\Backup del old target # only if older is on Target
filedo cmp D:\Data E:\Backup del new source # only if newer is on Source
Notes: matching by relative path, size-only equality; optional side qualifier for old/new/small/big; mtime used for old/new; Windows compare is case-insensitive; logs: compare_report_*.log, delete_report_
# Check folder by reading files; mark as damaged if initial read delay > 2.0s
filedo check F:\Mov
Flags mirror FILEDO_CHECK_* environment variables and have precedence. Use them after check <path>.
--threshold <sec> (FILEDO_CHECK_THRESHOLD_SECONDS)--warmup <sec> (FILEDO_CHECK_WARMUP_SECONDS)--warmup-idle <sec> (FILEDO_CHECK_WARMUP_IDLE_RESET_SECONDS)--workers <int> (FILEDO_CHECK_WORKERS)--buf-kb <int> (FILEDO_CHECK_BUF_KB)--mode quick|balanced|deep (FILEDO_CHECK_MODE)--balanced-min-mb <int> (FILEDO_CHECK_BALANCED_MIN_MB)--min-mb <float> / --max-mb <float> (FILEDO_CHECK_MIN_MB/MAX_MB)--include-ext ".jpg,.png" / --exclude-ext ".bak,.tmp"--max-files <int> (FILEDO_CHECK_MAX_FILES)--max-seconds <float> (FILEDO_CHECK_MAX_DURATION_SEC)--precount / --no-precount (FILEDO_CHECK_PRECOUNT)--dry-run (FILEDO_CHECK_DRYRUN)--verbose (FILEDO_CHECK_VERBOSE)--quiet (FILEDO_CHECK_QUIET)--resume (FILEDO_CHECK_RESUME)--report csv|json (FILEDO_CHECK_REPORT)--report-file <path> (FILEDO_CHECK_REPORT_FILE)--good-list <path> (FILEDO_CHECK_GOODLIST)--single-reader auto|on|off (FILEDO_CHECK_SINGLE_READER)--ewma-alpha <float> (FILEDO_CHECK_EWMA_ALPHA)--ewma-high-frac <float> (FILEDO_CHECK_EWMA_HIGH_FRAC)--ewma-low-frac <float> (FILEDO_CHECK_EWMA_LOW_FRAC)--max-sleep-ms <int> (FILEDO_CHECK_MAX_SLEEP_MS)--sleep-step-ms <int> (FILEDO_CHECK_SLEEP_STEP_MS)Examples:
# Balanced mode, worker override, ETA precount
filedo check D:\Data --mode balanced --workers 6 --threshold 1.8 --precount
# Force single-reader for HDD/USB with adaptive throttling
filedo check F:\Photos --single-reader on --ewma-alpha 0.2 --max-sleep-ms 250
# Filter by extensions, cap files, save CSV report
filedo check D:\Media --include-ext .jpg,.png --max-files 1000 --report csv --report-file D:\rep.csv
# Use custom good files cache list and quiet output
filedo check D:\Data --good-list D:\check_files.list --quiet
winget install SerZhyAle.FileDO
# short form (works once Microsoft indexes the moniker):
winget install filedo
This installs all four CLI tools (filedo, filedo_check, filedo_fill, filedo_test) and adds them to your PATH. To upgrade later:
winget upgrade SerZhyAle.FileDO
To uninstall:
winget uninstall SerZhyAle.FileDO
FileDO-<version>-windows-x64.zip from ReleasesC:\Tools\FileDO)PATH so you can call filedo from any directoryfiledo_win.exe from exe_to_download/ for the VB.NET visual interfacegit clone https://github.com/SerZhyAle/FileDO.git
cd FileDO
.\build.ps1 # or build.bat
Requires Go 1.24+. Builds all four executables into exe_to_download/.
Build only the main CLI:
go build -o filedo.exe .\cmd\filedo
| ### πΎ Device Testing ```bash # Information filedo C: info filedo D: short # Fake capacity detection filedo E: test filedo F: test del # Performance testing filedo C: speed 100 filedo D: speed max ``` | ### π File & Folder Operations ```bash # Folder analysis filedo C:\temp info filedo . short # Performance testing filedo C:\data speed 100 filedo folder . speed max # Network operations filedo \\server\share test filedo network \\nas\backup speed 100 # Batch operations filedo from commands.txt filedo batch script.lst # Cleanup filedo C:\temp clean ``` |
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 for easy corruption detectionprobe) - writes 32 markers via direct LBA access, completes in ~1 min (requires Admin)| Pattern | Type | Example |
|βββ|ββ|βββ|
| C:, D: | Device | filedo C: test |
| C:\folder | Folder | filedo C:\temp speed 100 |
| \\server\share | Network | filedo \\nas\backup test |
| file.txt | File | filedo document.pdf info |
| Command | Purpose | Example |
|βββ|βββ|βββ|
| info | Show detailed information | filedo C: info |
| short | Brief summary | filedo D: short |
| test | Fake capacity detection | filedo E: test del |
| test N | Test with N files (default 100) | filedo D: test 1000 |
| probe | Fast raw-I/O probe (~1 min, needs Admin) | filedo D: probe |
| speed <size> | Performance testing | filedo C: speed 500 |
| fill [size] | Fill with test data | filedo D: fill 1000 |
| clean | Remove test files | filedo C: clean |
| check-duplicates | Find duplicate files | filedo C: check-duplicates |
| cd [mode] [action] | Check duplicates (short) | filedo C: cd old del |
| copy <target> | Copy files with progress | filedo C: copy D:\backup |
| wipe | Fast wipe folder contents | filedo folder C:\temp wipe |
| from <file> | Execute batch commands | filedo from script.txt |
| hist | Show operation history | filedo hist |
| Command | Equivalent | Purpose |
|βββ|ββββ|βββ|
| filedo D: fill | filedo D: fill 100 | Fill with 100MB default |
| filedo D: f | filedo D: fill 100 | Short form |
| filedo D: f del | filedo D: fill 100 del | With auto-delete |
| filedo D: f d | filedo D: fill 100 delete | Short auto-delete |
| Command | Equivalent | Purpose |
|βββ|ββββ|βββ|
| filedo copy A B | filedo folder A copy B | Generic copy command |
| filedo A cp B | filedo A copy B | Short copy form |
| filedo A w | filedo A wipe | Short wipe form |
| Flag | Purpose | Example |
|ββ|βββ|βββ|
| del | Auto-delete after operation | filedo E: test del |
| nodel | Keep test files | filedo C: speed 100 nodel |
| short | Brief output only | filedo D: speed 100 short |
| max | Maximum size (10GB) | filedo C: speed max |
| old | Keep newest as original (for cd) | filedo D: cd old del |
| new | Keep oldest as original (for cd) | filedo E: cd new move F: |
| abc | Keep alphabetically last (for cd) | filedo C: cd abc |
| xyz | Keep alphabetically first (for cd) | filedo C: cd xyz list dups.lst |
FileDO GUI (filedo_win.exe) - VB.NET Windows Forms application provides user-friendly interface:
# Run from filedo_win_vb folder
filedo_win.exe # Windows GUI interface
Features:
Create commands.txt:
# Multiple device check
device C: info
device D: test del
device E: speed 100
folder C:\temp clean
Run: filedo from commands.txt
filedo hist # Show last 10 operations
filedo history # Show command history
# History automatically logged for all operations
# All long-running operations support Ctrl+C interruption
# Graceful cancellation with cleanup
# Context-aware interruption at optimal points
# SMB shares and network drives
filedo \\server\backup speed 100
filedo \\nas\storage test del
filedo network \\pc\share info
π― Fake Capacity Detection: Creates 100 files (1% capacity each) with context-aware interruption support. Uses modern random verification patterns and optimized buffer management for reliable detection.
π₯ Enhanced Interruption: All long-running operations support Ctrl+C graceful cancellation with automatic cleanup. Context-aware interruption checks at optimal points for immediate responsiveness.
οΏ½οΈ Secure Wiping:
fill <size> deloverwrites free space with optimized buffer management and context-aware writing for secure data deletion.
π’ Test Files: Creates
FILL_*.tmpandspeedtest_*.txtfiles. Usecleancommand to remove them automatically.
π΅ Modular Architecture: Refactored with separate
capacitytestandfileduplicatespackages for better maintainability and extensibility.
π§ͺ CHECK Command: Marks a file as damaged if initial read delay exceeds 2.0s. Allows a one-time warm-up up to 10.0s. Writes immediately to
skip_files.listand respects existing entries. Nodamaged_files.log.
Tester interface for all storage typesFileDO/
βββ main.go # Application entry point
βββ capacitytest/ # Capacity testing module
β βββ types.go # Core interfaces and types
β βββ test.go # Main testing logic
β βββ utils.go # Utility functions and verification
βββ fileduplicates/ # Duplicate file management
β βββ types.go # Duplicate detection interfaces
β βββ duplicates.go # Core duplicate logic
β βββ duplicates_impl.go # Implementation details
β βββ worker.go # Background processing
βββ filedo_win_vb/ # VB.NET GUI application
β βββ FileDOGUI.sln # Visual Studio solution
β βββ MainForm.vb # Main form logic
β βββ bin/ # Compiled GUI executable
βββ cmd/
β βββ filedo/ # Main CLI sources
β βββ filedo-check/ # Standalone health check utility
β βββ filedo-fill/ # Standalone fill utility
β βββ filedo-test/ # Standalone test utility
βββ capacitytest/ # Capacity-testing shared logic
βββ fileduplicates/ # Duplicate detection logic
βββ helpers/ # Shared helpers
v2507112115 (Current)
capacitytest packageInterruptHandlerv2507082120 (Previous)
v2507062220 (Earlier)