FastCopy
June 24, 2026 Β· View on GitHub
A GUI wrapper for Windows' built-in robocopy and .xcopy
Features
-
Easy to use copy/paste/move/delete dialog, just like your good old explorer, but much fasterπ
-
Support the new Windows 11 context menu, and the old windows context menu, with the fluent design icon adapted to Light/Dark theme
- Integration with Windows Notification Center: a notification toast will pop up when the copy is finished
- Speed graph
- Confirmation Dialog
- Integration with taskbar: a progress bar sync with the one inside the window
- Settings
| Chinese | English |
|---|---|
![]() | ![]() |
- Multi-language support
- English
- δΈζ
Installation (before publish to Microsoft Store)
- Go to the Release Page, download the zip file in the Asset section of the latest version
- Unzip, double-click to open the certificate file ended in
.cert, clickInstall Certificate. ChooseLocal Machinein the dialog, clickNext
- Choose
Place all certificates in the following store, clickBrowser, and in the dialog chooseTrusted root certification authorities
- Then click
Nextand finallyFinishto install the certificate. - Now you can double-click the
msixto install the app. - In rare situations, you might need to restart
explorer.exeto seeRobocopyExin the right-click context menu
Usage
- Using file explorer, select some files/folders, as many as you want >> right click >> move to RobocopyEx >> select Copy or Move
- Go to destination folder, right click at empty space >> move to RobocopyEx >> select Paste
Development
Project structure
FastCopy
FastCopy\ --- Main project
FastCopyShellExtension\ --- A dll project for registering the new Windows context menu
SpeedTest\ --- A speed test project for measuring various copying method under Windows
UnitTest\ --- Unit test for above projects
FastCopy.sln --- The solution file for all the projects
Build pre-requisites
- Visual Studio 2019+, with C++20 support & Universal Windows development workload
- Windows App Sdk, with C++ template
- Additional dependencies per project:
- FastCopy:
- spdlog
- boost-algorithm
- SpeedTest:
- abseil
- ftxui
- cereal
- FastCopy:
vcpkg is the recommended package manager to handle these dependencies. They are installed automatically when building within Visual Studio.
Other component comes from my very own WinUIEssentials, which will be installed automatically by Visual Studio nuget.
Known issue
- App crash after the window closed (does not affect users, low priority)
Recommendation
Please install the Child Process Debugger, so that the debugger would break at the copying process (after you launch the settings process). That is, you run the program first (so it goes into settings), then copy-paste a file, then the debugger will break automatically. Strongly recommended!
Translation
For contribution to translation, there are 2 places to be translated:
- The main project, in
FastCopy/Strings/<language>/Resources.resw - The shell extension project, in
FastCopyShellExtension/CopyOperationNames.cpp CopyOperationNames::GetInstance()
Prototype
Figma link, you may need to ask for permission.



Technical details
Speed comparison
In the SpeedTest project, you can find the speed comparison between various copying methods we investigated. A table for summary:
| Method | Copy | Move | Delete |
|---|---|---|---|
| xcopy | β | β | β |
| robocopy | β | β | β |
| std::filesystem | β | β | β |
| IFileOperation | β | β | β |
| SHFileOperation | β | β | β |
My spec:
- CPU: AMD Ryzen 9950x
- SSD
- Same drive: Samsung 870 QVO 1TB @ SATA 6Gbps
- Different drive: Fanxiang S500 Pro 2TB @ PCI-E 3.0 4x -> Samsung 870 QVO 1TB @ SATA 6Gbps
- Motherboard: MSI X870 Tomahawk Wifi
The Results:
- Copy same drive -> same drive:
| Method | 1 GB of 4 KB small files | 4 GB of 1 GB large files |
|---|---|---|
| xcopy | 2:29 | |
| robocopy | 2:19 | 0:30 |
| std::filesystem | 2:25 | 0:54 |
| IFileOperation | 6:19 | |
| SHFileOperation | 8:59 |
*IFileOperation and SHFileOperation actually keeps eating 100% of Disk usage in taskmgr after the API returns, meaning the API does an early return, which does not really counts.
- Copy different drive -> different drive:
| Method | 1 GB of 4 KB small files | 4 GB of 1 GB large files |
|---|---|---|
| xcopy | 2:20 | |
| robocopy | 1:58 | 0:08 |
| std::filesystem | 2:39 | |
| IFileOperation | 6:12 | |
| SHFileOperation | 8:50 |
- Move same drive -> same drive:
| Method | 1 GB of 4 KB small files | 4 GB of 1 GB large files |
|---|---|---|
| xcopy | N/A | N/A |
| robocopy | 2:52 | 0:17 |
| std::filesystem | ||
| IFileOperation | 3:44 | |
| SHFileOperation | 5:31 |
- Move different drive -> different drive:
| Method | 1 GB of 4 KB small files | 4 GB of 1 GB large files |
|---|---|---|
| xcopy | N/A | N/A |
| robocopy | 2:25 | 0:08 |
| std::filesystem | N/A | N/A |
| IFileOperation | 12:58 | 0:08 |
| SHFileOperation | 15:48 | 0:06 |
- Delete:
| Method | 1 GB of 4 KB small files | 4 GB of 1 GB large files |
|---|---|---|
| xcopy | N/A | N/A |
| robocopy | N/A | N/A |
| std::filesystem | 0:19 | 0:01 |
| IFileOperation | 0:42 | |
| SHFileOperation | 2:28 |

