Warning : Original document is written in Japanese.
FastCopy is the Fastest Copy/Delete Software on Windows.
It supports UNICODE and over MAX_PATH(260byte) pathname files.
It automatically selects different method according to whether Source and DestDir are in the same or different HDD. Diff HDD Reading and writing are processed respectively in parallel by another thread.
Same HDD Reading are processed until the big buffer fills. When the big buffer filled, writing are started and processed in bulk.
Because Reading/Writing are processed with no OS cache at all, other applications aren't easy to become heavy.
It can bring out Reading/Writing performance that is close to device limit.
Include/Exclude Filter (UNIX Wildcard style) can be specified.
It runs lightly, because MFC is not used. (made by Win32 API and C Runtime only)
You can modify this software, because all source codes have been opened to the public in the BSD license.
Copyright 2004-2009 SHIROUZU Hiroaki All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY SHIROUZU Hiroaki ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SHIROUZU Hiroaki OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Please run setup.exe, and install it in an arbitrary directory.
If you want to install in USB memory, please copy two files(fastcopy.exe/fastcopy.chm) to USB memory. (In this case, shell extension can't be used. )
If you want to uninstall, please run setup.exe of the installed directory.
(It removes shortcut and unregister shell extension)
If main window is minimized, it is stored in task tray.
(In addition, the icon rotates while the copy is operating. )
Source / DestDir
It is memorized the tenth of Source/DestDir. (It can be changed in settings dialog.)
If you want to specify two or more files/dirs to Source field, please use semicolon as separator.
If you want to add files/dirs to Source field by the drag and drop, please drop with pushing CTRL button.
And it is able to drag & drop to DestDir field.
About different behavior whether the end of DestDir character is '\' or not.
Source is one directory and the end of DestDir character is NOT '\'
Copy source directory's contents to DestDir.
Copy source directory that including it self to DestDir.
Diff (No Overwrite) Copy if the same filename doesn't exist in destination.
Diff (Size/date) Copy if size or date is different, or it doesn't exist. (in default)
Diff (Newer) Copy if source file timestamp is newer, or it doesn't exist.
Copy (Overwrite all) Always copy/overwrite all.
Sync (Size/date) Copy if size or date is different, or it doesn't exist. In addition, delete all destination files/directories that don't exist in source.
Move (Overwrite all) Always copy/overwrite all and delete all copied source files. (It is able to change "Move (Overwrite all)" -> "Move (Size/date)" in settings dialog.)
Delete delete all compulsorily.
Buttons & Options
Execute The copy operation is executed. While copy is executing, this button changes "Cancel..." button.
(The confirmation dialog is displayed, if it is pushed this button with CTRL key)
Listing The files and directories list that will be copied and deleted are displayed. '+' means copying, and '-' means deleting.
Buffer size Specify the size(MB) of the main buffer for Read/Write opration.
Speed Control Specify "Full Speed", "Auto Slow"(*1), "90%"~"10%", "Suspend".
If you feel heavy, it is recommended to set "Auto Slow" (If it is detected mouse moving/active window changing(and fastcopy window isn't foreground), it is slowed down).
If "Full Speed" isn't selected, low process priority class is set.
(This setting is not saved by job manage)
NonStop Don't interrupt even if the error occurs by Read/Write/Delete, and keep process as much as possible.
(However, it is displayed the error in main window, and recorded to the error log.)
Verify Verify written files data by MD5(or SHA-1. If you want to use SHA-1, write [main] Using_MD5=0 in fastcopy.ini)
... Action detail: Read(Src) -> MD5(Src) -> Write(Dst) -> Read(Dst) -> MD5(Dst) -> Compare MD5(Src/Dst) (Of course, all actions are processed in parallel as much as possible)
Estimate Display the estimated complete time. It needs to investigate source tree before starting.
Top FastCopy window is always toplevel.
Start at once Start at once without waiting for the finish of other FastCopy executing. (This button doesn't show when other FastCopy isn't coping)
"?" Show help
(*1) It is slowed if fastcopy window isn't foreground and it is detected mouse moving, by waiting beetween I/O, changing process priority, changing I/O priority(Vista), and changing maximum I/O size.
ACL Copy Access Control List(ACL). (only NTFS)
Alt Stream Copy Alternate Stream. (only NTFS)
Wipe & Delete (prevent deleted files reviving) Rename filename and Overwrite random data before deleting. Alternate stream isn't overwrited. If NSA method is checked in setting dialog, Overwriting Random data process runs two times, and overwriting NULL data process runs one time.
Filter Enable Include/Exclude/Date/Size filter. Note: It is always disabled in move mode.
Include Copy only the files/directories that match up specified strings(UNIX Wildcard style).
If you want to specify two or more strings, please use semicolon as separator.
If you want to specify directories, please add '\' to the end of directory name.
(For example: *.txt; My Folder [0-9]\)
Exclude Don't copy the files/directories that match up specified strings.
The following filters are enabled when check "Option" -> "Show Extended filter".
FromDate Don't copy the files that timestamp are older than specified date(format).
It can be specified not only absolute format("20090322") but also relative format(10days before ... "-10D").
ToDate Don't copy the files that timestamp are newer than specified date.
MinSize Don't copy the files that size are smaller than specified size.
High number can be abbreviated to K/M/G/T character(Kilo/Mega/Giga/Tera).
MaxSize Don't copy the files that size are bigger than specified size.
Include/Exclude filter(wildcard) format. * Zero or more arbitrary characters
? One arbitrary character
[abc] One character in "abc"
[!abc] One character except "abc".
'^' can be allowed instead of '!'.
[a-z] One character in "abc...xyz"
\ Escape character (However, if '\' is the end of string character, it means a directory)
(Attention: In the future, filter string specification may be changed.)
FromDate/ToDate filter format. Absolute Specify "YYYYMMDD"(year/month/day).
Relative Specify "+|- number W|D|h|m|s".
W|D|h|m|s means Weeks/Days/hours/minutes/seconds.
ex) "-12h" (It is case sensitive.)
Junction and SymLink
Junction(include MountPoint) and Symlink is understood in ver1.70 or later.
Diff/Copy Copy Junction/Symlink itself.
If you want to change to copy Junction/Symlnk's target, it can be changed in settings dialog.
Move Always move Junction/Symlink itself.
Delete Always delete Junction/Symlink itself.
HardLink can be reproduced as much as possible, if specify /linkdest option in ver1.95 or later.
(In running, "TotalFiles:" format changes "number_of_files (number_of_dirs)" to "number_of_files / number_of_created_hardlinks (number_of_dirs)").
Two points of notice are in the following.
1. It needs 2-4MB per 10 thousand hardlink entity files. (It depends on path length)
2. It affects slow, because it opens not only copying files but also skip files.
If /linkdest option is enabled, /recreate option is enabled tacitly.
If you want always to enable /linkdest optoin, write [main] linkdest=1 in fastcopy.ini.
Job Manage -> Add/Del Job
Register/Restore parameters in main window as named job. Add/Modify Add/Modify prameters in main window(Source/DestDir, Operation mode, Buffer size, Nonstop/Verify/Estimate/ACL/AltStream/Wipe&Delete/Filter checkboxes, Filter strings, HDD mode) as named job.
Delete Delete registered job.
Option -> Main Settings
General settings. (change Default values, I/O parameters, and Copy Options, etc)
Option -> Shell Extensions
Register copy/delete menu items with Explorer's right click menu and right drag&drop menu.
Option -> Auto/Same/Diff HDD mode
Specify Auto/Same/Diff HDD mode(default: Auto).
CTL + K means shortcut to rotate disk mode (auto -> same -> diff ->...)
Option -> Swap Source <-> DestDir
Swap Source for DestDir (for mutual update or etc).
Source/DestDir will be modified based on different behavior whether the end of DestDir character is '\' or not. (For example, If Source is "C:\AAA\BBB" and DestDir is "D:\CCC\", then it is modified that Source is "D:\CCC\BBB" and DestDir is "C:\AAA\")
If Source has two or more files/directories, this menu item is disabled.
CTL+ALT+S is shortcut of this function.
Option -> Post-Process
It can change detail settings(sound, command, and standby/hibernate/shutdown). And It can add new Post-Process settings.
Please use space character(' ') as separator(not semicolon).
If filename contains space character, please enclose with dobule quotation marks.
Ex) fastopy.exe C:\Windows "C:\Program Files" /to="D:\Backup Folder\"
Supported options are as follows. (Please don't put space characters before and behind "=")
/cmd=(noexist_only|diff|update|sync|force_copy|move|delete) ... Specify operation mode.
(In default, diff mode is used. If delete mode is specified, then "/to=" option isn't used.)
cmdline in GUI
noexist_only Diff (No Overwrite)
diff Diff (Size/date)
update Diff (update)
force_copy Copy (Overwrite)
sync Sync (Size/date)
move Move (Overwrite)
/auto_close ... Close automatically after execution is finished with no errors.
/force_close ... Close automatically and compulsorily after execution is finished.
/open_window ... Don't stored in the task tray.
/estimate ... Estimate complete time.
/no_exec ... Don't start to execute.
/no_confirm_del ... Don't confirm before deleting.
/no_confirm_stop ... Don't Show error dialog, Even if critical errors occurred.
/error_stop ... Show error dialog (and operation is interrupted), if an error occurred. (to disable, /error_stop=FALSE)
/bufsize=N(MB) ... Specify the size(MB) of the main buffer for Read/Write opration.
/log ... Write the operation/errors information to the logfile(fastcopy.log). (to disable, /log=FALSE)
/logfile=filename ... Specify the filename of logfile.
/filelog ... Write to the filelog(detail of copy/delete files). It is stored TIMESTAMP.log in FastCopy/Log directory. If using verify mode, write digest data(default:md5) as additional data. (To specify filelogname, /filelog=filename)
/utf8 ... Write to the logfile as UTF-8.
/skip_empty_dir ... Skip to create empty directories when /include or /exclude option is used. (to disable, /log=FALSE)
/job=job_name ... Specify the job that is already registered.
/force_start ... Start at once without waiting for the finish of other FastCopy executing. (to disable, /log=FALSE)
/speed=(full|autoslow|9-1(90%-10%)|suspend) ... Specify speed control level.
/srcfile="files.txt" ... Specify source files by textfile. It is able to describe 1 filename as 1 line. (Attention: If a lot of files are specified, it will take many times to display/refresh Source combobox.)
/srcfile_w="files.txt" ... same as "/srcfile=", except describing by UNICODE.
/include="..." ... Specify include filter. (details)
/verify ... Verify written files data by MD5(or SHA-1) (to disable, /verify=FALSE) (details)
/linkdest ... Reproduce hardlink as much as possible. (details)
/recreate ... Change updating behavior "overwrite the target" to "delete and recreate the target". (If /linkdest option is enabled, this option is enabled tacitly.) If you want always to enable, write [main] recreate=1 in fastcopy.ini.
/postproc=actoin_name ... Specify post-process action name (to disable, /postproc=FALSE)
Ex) Copy C:\Test Folder to D:\Backup Folder by "diff(Size/Date)" mode is...
fastcopy.exe /cmd=diff "C:\Test Folder" /to="D:\Backup Folder\"
In some modes, destination files that exist the same filename in source direcotries are overwrited compulsorily without confirming.
In sync mode, destination files that don't exist the same filename in source direcotries are deleted compulsorily without confirming.
In delete mode, target files and directories are deleted compulsorily without confirming.
If fastcopy has bugs, there is a possibility of serious problem.
Please use at your own risk. (See 2. License)
8. Latest Version/Contact
There is latest version & bulletin board in following URL.
The setting is preserved in fastcopy.ini.
The core routine of high performance copy is independent from GUI, you can use it(on BSD license) in your applications.
If fastcopy terminated abnormally, fastcopy_exception.log is generated.
(Please send this file to author, I will use for quality improvement)
Direct network communication mode between two fastcopy processes. (Don't use SMB protocol)
v1.99 Add detail filelog option(/filelog). Enable filter in move mode. Speed up starting (Replace API's inifile access by original routine.) Affect filter for the files those are specified direct in Source EditBox. Modify /srcfile option when using MBCS in srcfile contents. Additionally, refinement
v1.98 Add Extended (filesize/timestamp) filter. ("Option" -> "show extended filter")
v1.97 Correct that sometimes it failed to play sound in post-process action. Additionally, refinement
v1.96 If /linkdest option is enabled, change updating behavior "overwrite the target" to "delete and recreate the target". Add option(/recreate) that change updating behavior "overwrite the target" to "delete and recreate the target", regardless of specifying /linkdest option.
v1.95 Add reproduce hardlink option(/linkdest). Change showing Post-Process notice dialog as foreground. Correct wrong freeing memory at termination.(v1.93-v1.94) Correct that sometimes ACL/Stream copying failed.
v1.94 Correct that helpfile can't be opened.(v1.93 only)
v1.93 Add Post-Process(shutdown or etc) menu. Add "open log" menu. Add /srcfile option.(specify source files by textfile). Correct that JobMng saved "Delete" mode as "move" mode(v1.80-v1.92 only). Correct that installation option(creating shortcut) didn't work at Non-English OS.(v1.92 only)
v1.92 Correct English document. Add "run in task tray" option in shell extension. Correct that sometimes incomplete file remained when error occurred.
v1.91 Correct that sometimes "wipe and delete" failed. Correct that "move with verification" wasn't finished rarely. Correct that network drive in directory select dialog didn't show.
v1.90 Speed up verification. (I/O and verification are processed by parallel.) Switching SHA-1 to MD5 for verification as default.(If you want to use SHA-1, write [main] Using_MD5=0 in fastcopy.ini). Add to fix window position/size in menu. Add Source/DestDir swapping in menu.
v1.84 Correct wildcard filter problem. (when many wildcard strings were registered, unregistered string was occured rarely. To be exact, when sum of registered characters are just 62*n, boundary string wasn't registered)
v1.83 Using OS cache at reading option is ON, although it is disabled OS cache for verify reading.
v1.82 Add using OS cache at reading option.(OS Cached file reading will be faster. But not OS cached file reading require new OS cache area, and it will has bad effect for virtual memory area(swap or etc). this option is not recommended for normal use.)
v1.81 Correct move with verify mode.(if verify error occurs, sometimes process doesn't finish.)
v1.80 Add verify option by SHA-1. Add "paste" menuitem in shell extension. Add move(Size/date) mode. Add move as one by one option. Auto reduce MaxIO size(if ERROR_NO_SYSTEM_RESOURCES is occured). Add suppressing confirm dialog at stopping error(/no_confirm_stop).
v1.71 Correct registering shell extension problem (Win2000/Me/98 only)
v1.70 Interpret Junction/Symlink (by default, it is copied Junction/Symlink itself (not target childs). In remove mode, it is always removed only Junction/Symlink itself). Elevate Admin(for Vista UAC). Add shell extension for 64bitOS. Add logging as UTF-8 option. Add logging filename option(/logfile=). Expand error log area.
v1.63 Change size limit of filter strings(62->2048chars)
v1.62 Correct CreateFile error that is caused by generating illegal dest path.(1.60/61 only)
v1.61 If string length is over 8192 chars in src field, it is truncated 8192 chars at executing. (v1.60 only)
v1.60 NTFS Access Control List(ACL), Alternate Stream support. Add Wipe & Delete option (normal and NSA method) for delete mode. Change Process Priority Class at using Auto Slow function.Changing "Auto Slow" checkbox to slider control.
v1.55 Modify PopupDialog Position at tasktray mode
v1.54 Modify for NT4.0
v1.53 When executing in tasktray by command line, it don't get focus. In the multi monitor, the window shows in the monitor that has mouse pointer. Modify to enable /error_stop option.
v1.52 Addition of Auto Slow function. It is corrected that too strictly time stamp judgment in some UDF filesystems. It is corrected that control specification (=FALSE) of the command line option did not work effectively.
v1.51 When two or more different directories are specified for src and using estimating option, it terminated abnormally sometimes occasionally.
v1.50 Enable to the filter specification in the synchronous mode.
v1.40 Addition of job management function. Addition of preview listing function. Addition of multiple fastcopy process control option. When the filter is specified, the option not to make an empty directory is added. Addition of automatic operation/same/another HDD mode specification. The resize of the main window is possible. Informative label of API error. Additionally, refinement
v1.32 It is corrected that the Include/Exclude filter was invalid at the command line. Additionally, refinement
v1.31 It is corrected to have fallen immediately after execution when a lot of specification is done with the Include/Exclude filter occasionally.
v1.30 Include/Exclude filter function addition. When drag & is dropped in the same directory, the reproduction is made possible. It adds it by the Source selection the file selection dialog. In addition, some speed-up. Do not end excluding the deletion mode automatically when start by way of the shell + canceling. Other refinement.
v1.21 A part of phenomenon of not coming out the shell enhancing menu in the environment (It is v1.20's enbug) is corrected.
v1.20 Forecast function addition of copy completion time. It is corrected not to have functioned occasionally though it two or more file selection + opens by enhancing the shell. Other refinement
v1.12 Option of making to submenu addition of shell enhancing. It is corrected to have hardened when a large amount of file is selected by way of the shell occasionally (Only v1.10-1.11). The behavior of the shell enhancing with Nettowarcpras is changed. Other refinement
v1.11 In the environment, a part of problem that execution cannot begin is corrected.
v1.10 Making of the main window (Correspond to the drag & drop etc. of the UNICODE file name) UNICODE. To enclose the path name with ""when drag & is dropped, the file of the path name including the semicolon is changed. Mode addition that doesn't put out confirmation dialog when shell start is executed. It is corrected that the shell enhancing and the directory under the control of the start menu did not open it when it is effective occasionally. Other refinement.
v1.00 1.00 release (2005/03/10)
v0.50 1st alpha release (2004/09/27)
Address: (this is picture)