CrazyCopy FAQ

Frequently Asked Questions

FAQ

Is CrazyCopy too good to be true, is it safe?

One common question from users is “Will my drive break, or will it degrade faster if I use faster operations?”

SSD drives have no mechanical parts and they are built for parallel operations. They will not degrade faster because you are copying faster or using more channels or parallel operations. Total writes to the SSD is far more relevant to wear of the device, it doesn’t matter if its writing serially or in parallel. The more writes performed the more the storage media will wear out – although this is partially mitigated with techniques like wear levelling.

USB flash drives and SD cards also have finite flash write endurance, and their controllers and wear-levelling mechanisms are generally less sophisticated than those of SSDs. These are limited to 2 threads in CrazyCopy to prevent IO contention.

Hard disk drives on the other hand do have mechanical parts, and although these drives are thoroughly tested to make sure they can handle a huge number of file operations before they start to degrade, continually thrashing a drive will reduce its lifetime. Check your drive instructions for wear expectations if worried, and especially consider the Mean Time Between Failures (MTBF) which is provided by manufacturers. In general, unless you are copying a large percentage of your drives capacity every day, it’s unlikely you will degrade your Hard Drive through copying folders. HDD wear also depends on many other factors: operating hours, temperature, vibration, load/unload cycles, seek activity, manufacturing variation, etc.

Always ensure you have adequate cooling with all your storage devices, including SSDs, HDDs, USB Thumb/Flash drives, SD cards etc. When devices overheat they can throttle the device which slows down the transfer rates. This behaviour is built into the firmware on the device, and is normal. Very high temperatures can also cause the device to shutdown to protect itself. High temperatures will result if your device has inadequate cooling even with light use. 

Industrial usage may result in hard disks wearing out faster, especially if performing multiple daily drive copies. If performing industrial operations then use hardware specifically built for that. Again, look at the manufacturer’s reliability specifications, including MTBF, although MTBF is a statistical population reliability figure and should not be interpreted as the expected lifespan of an individual drive.

Be cautious with ALL older drives. Although non mechanical drives like SSDs, SD cards, USB drives etc rarely fail completely, they will degrade gradually as the media is overwritten numberous times. You can check the amount of health left on a drive using various free disk tools that will show you the SMART metrics on a drive. Mechanical drives can fail all at once. So the advice is to BACKUP everything you do not want to lose.

So use CrazyCopy at your own risk, backup everything you do not wish to lose. And ensure you follow your storage device manufacturers advice and guidelines on cooling, environment and usage.

Can I lose files? 

Make sure you understand the Copy Over mechanism in CrazyCopy, as this is one way you can overwrite and potentially lose your own files. This option is disabled by default, only turn it on if you really want to overwrite an existing folder. You can’t move a folder over another folder, only Copy Over can do this. Backup any folders before you overwrite them – Now you have CrazyCopy it only takes a fraction of the time !

Moving is the only other thing that will even touch your original Source folder and files. That’s why the Safe Move operation has been split into 3 parts to protect it –

  1. Copy the source folder to the destination first
  2. Validate the same number of files and folders are in the new copy as the original folder 
  3. When validation is successful delete the original source folder

No file losses should occur using CrazyCopy, however human error can cause files or folders to be deleted, or overwritten. When using CrazyCopy always disable the Copy Over option if not needed, as this will stop any accidental file overwrites or folder merges. Also try to keep Safe Move enabled as this will enhance the safety of any move operations.

Note that any files being deleted during the last phase of the Safe Move operation will not be moved into the Windows Recycle Bin. So these files can not be recovered by CrazyCopy or through the use of the Windows Recycle Bin. Windows itself may also permanently delete files rather than send them to the Recycle Bin in some circumstances, such as when the files exceed the Recycle Bin’s configured capacity.

What are the Alternatives to CrazyCopy?

Windows has 3 command line copying tools :

  1. copy
  2. xcopy
  3. robocopy

Copy and XCopy are both older Windows tools that don’t offer the same level of handling of special files as CrazyCopy. xcopy, still has limitations that cause failures with long path lengths. A user can also creating infinite nested folders, leading to drive errors. The main problems with these tools are the absence of verification when an operation completes, also the lack of speed and, in the case of Robocopy, over complexity. They are also command-line tools with no GUI, so they don’t provide conveniences such as drag and drop, visible success/failure reporting, or detailed error messages with helpful suggestions for fixing problems. They also do not resolve problems if moving targets of shortcut or symbolic links, especially if they use relative paths.

There is of course the main Windows engine that provides GUI based File and Folder copies and moves. However for large or deep folders this option can be considerably slower and without any way to accelerate the speed of copying. When I see a copy slow to a crawl, I can’t help feeling like I have been tricked. I paid a fortune for an SSD, sold to me on the promise that it was lightning quick, but in reality it slows to 10KB/s copying. This is what led to CrazyCopy.

Is CrazyCopy less safe than xcopy or robocopy? 

CrazyCopy tries to remove any decision making about what to do with files during copying or moving. Things like reparse file objects, shortcuts, links etc can all end up with dangling references if you are moving their targets without updating them. CrazyCopy will keep the relationships consistent if for example the file is being moved along with the target file. This is one benefit that is safer when copying or moving files. CrazyCopy will also tell you whether to trust the destination target or not, and it won’t remove the source folder until it’s safe, all of these can make CrazyCopy safer than using normal file tools.

Also it should be noted that XCOPY has poor support for long Windows paths. You can reproduce a failure of xcopy by running a simple test in Windows. CrazyCopy and Robocopy can both copy the same folder successfully.

CrazyCopy is also designed to be more aggressive in its attempts to prevent file loss.

Will my CPU degrade? 

CPUs are meant to be fully used, as long as you have adequate cooling to reduce/prevent throttling on your CPU, it will work as it was designed, with all cores running 100%, doing exactly what they were intended to do !

Does CrazyCopy Support Indexed drives, and are they faster?

Windows can apply an index to a drive’s contents, and for Windows search this can speed it up a bit. When CrazyCopy validates a folder after copying it, it tries to use the indexed stats on that folder so it doesn’t need to go into every sub folder and count the contents. If indexing is turned off it doesn’t make any discernable difference to the speed of CrazyCopy operations. All benchmarking uses non indexed partitions, apart from the main Windows installation drive – which is indexed.

Do I need to have CrazyCopy on my PATH?

No. If you install CrazyCopy from the Microsoft Store (.msix), or from the standalone installer (.msi), then access to CrazyCopy is handled for you. You will be able to start the GUI version from Windows Start, and you should be able to run CrazyCopyCLI (which is the command line version) from any folder in a Command Prompt, Powershell or Windows Terminal (as long as the user has the correct permissions). If the current user doesn’t have access to CrazyCopyCLI, install CrazyCopy for All Users, or install it for the current user.

Why are there 2 CrazyCopy executable files? 

There are 2 executable files in the CrazyCopy package. CrazyCopyCLI.exe and CrazyCopy.exe. This is to allow a command line and a GUI version to co-exist without overwriting each other’s persistent user configurations. Each version of the program saves the user’s current settings in a file called user.config. This allows the command line version (CrazyCopyCLI) to run using settings that will not be overwritten or changed by the GUI version (CrazyCopy). So for example, if the Source and Destination folders are set up for a copy operation in the GUI app, they will not be overwritten if the command line or context menu is used, and vice versa. Also the CLI version writes to 2 different output streams, one logging stream to standard output and the other to an error stream to standard error (if CrazyCopyCLI encounters any errors). CrazyCopy will also exit with predictable and correct return codes, where 0 is success and anyother number is a failure. These are required if interfacing CrazyCopyCLI from a script, AI or another application. To allow output to these streams a non GUI application is required.

Which version do I use if I want to use the Command Line? 

Use the CLI version (CrazyCopyCLI.exe) if you want to use the command line version. The command line version has no GUI, so no Windows or dialogs. For automating CrazyCopy into a script where you do not wish any human interaction to be required, use the CLI version. The CLI version can be used to fully automate all operations i.e. copy, copy over and move. So if you want to use CrazyCopy for Automated Backups for example use the CrazyCopyCLI (CLI is the Command Line Interface). CrazyCopyCLI is the only application that can be run from the command line as its location is added to the Windows PATH by the Store installer (.msix).

How do I run CrazyCopy from the Command Line?

Open up a Windows terminal or cmd.exe, and from any folder simply type the name CrazyCopyCLI 

CrazyCopyCLI                  is the same as typing                          CrazyCopyCLI.exe

To find out which arguments can be passed to the CrazyCopyCLI executable use the –help argument. The actual executable name and all arguments are not case sensitive.

For example

CrazyCopyCLI –help       is the same as typing                      crazycopycli.exe –HELP

Why are new files owned by Administrator when I am running as a local user? 

The owner of newly created destination files and folders is determined by the default owner SID in the security token under which CrazyCopy is running. For a user who belongs to the local Administrators group, Windows may assign ownership to the built-in Administrators group even when CrazyCopy is running without elevation.

To see if the current user is a part of the admin group run this

net user <username>

If you see in the output from the above command the following, then anything created by this user could potentially be owned by the built-in Administrators group, depending on the security context under which it is created.

E:\TestCCACLs>net user marcu
User name                    marcu
Local Group Memberships      *Administrators       *Performance Log Users
                             *Users
The command completed successfully.

To find the username of the current user run this (and use the part after the backslash for the username, don’t use the entire string). 

whoami /user

<machinename>\<username>

The example below shows:
machinename: lightning-iii
username: marcu

E:\TestCCACLs>whoami /user
USER INFORMATION
----------------
User Name           SID
=================== ==============================================
lightning-iii\marcu 1-1-1-11-1111111111-1111111111-1111111111-1111

Can I restore overwritten files ?

If you have overwritten, deleted, moved and lost any files then there is no way they can be retrieved using CrazyCopy. CrazyCopy does not delete any files when copying, nor does it move any files, unless there is already a good copy of them that has been made first. If you have Copy Over enabled and have copied over some existing folder and files then there is no way to retrieve the old copies using CrazyCopy. This works in the same way that Windows and almost all other consumer file systems and tools operate. 

Regular backups are essential to maintaining files and System Integrity. So why not use CrazyCopy to make backups of your important files ! There is no excuse anymore for not backing up – because CrazyCopy is lightning fast ! 

Suggestions for Backups

Apart from using CrazyCopy, there are plenty of other ways to protect important files. Here are a few other suggestions.

Small files, Source Code : Use a local gitea instance on a Single Board Computer for any source code or small non binary files. An SBC and USB stick are more than enough if not backing up large files. All private, and 100% owned by you.

Media Content : Use a local cloud storage SBC running NextCloud with an SSD for backing up mobile data, photos, videos, audio etc. All private, and 100% owned by you.

Drive Backups/Large Files : Use a local NAS server running on an SBC with some old HDDs for backing up your drives and other large backups. Or just plug in a USB connected HDD/SSD (with USB enclosure) to back up your drives etc. All private, and 100% owned by you.

Of course there are also plenty of free (limited space) or even in the worst case, paid for, cloud services. So no excuse – choose your solution, automate it and backup !

Why does CrazyCopy skip these two folders when Copying a Root Folder ?

The following folders are managed by the Windows System.

  • $RECYCLE.BIN
  • System Volume Information

These are special system folders associated with the volume on which they reside. Windows creates and manages them at the root of supported filesystem volumes.

CrazyCopy does not copy these folders because they contain volume-specific system information and are not ordinary user data. Copying them to another location would not preserve their intended Windows system function.

Windows will automatically create and manage its own versions of these folders on a destination volume when required.

How does CrazyCopy handle WSL folders ?

Windows Subsystem for Linux (WSL) allows Linux environments to run within Windows. NTFS file systems in modern Windows versions can support some linux features. A major difference between Windows and Linus is the support for case sensitive file and folder names. Linux supports filenames with case whereas Windows, by default, ignores case differences when comparing file or folder names. For example, Linux considers FILE.txt and file.txt to be two different files, while Windows normally considers them to refer to the same file.

If wsl is enabled in Windows then it is possible to enable per-directory case sensitivity on an NTFS file systems, thus allowing linux like file and folder naming. File and Folder names that differ only by letter case can coexist within the same folder.

For example 

A folder with per-directory Case Sensitivity Enabled could contain the following:

D:\Source\
    SubFolder\
        FILE.txt
        file.txt
    subfolder\
        FILE.txt
        file.txt
    SUBFOLDER\
        FILE.txt
        file.txt

With per-directory case sensitivity enabled on D:\Source and each of its three subfolders, all three subfolders and all six files are distinct objects. A Default installation of Windows on the othr hand would only see these unique files and folders, if case sensitivity was disabled (or not supported).

D:\Source\SubFolder
D:\Source\SubFolder\file.txt

Therefore when copying a Source folder that contains case sensitive folders it will fail if Windows, the NTFS Disk and the Destination Folders do not also support per-directory case sensitivity.

To reduce the risk of overwriting files or losing data, Copy Over is not permitted if the Source folder itself, or any of its subfolders has per-directory case sensitivity enabled. CrazyCopy checks for this condition before copying or moving begins, and it will reject the operation if Copy Over is enabled.

When Copy Over is disabled, CrazyCopy may still encounter filename collisions if the destination cannot distinguish between filenames that differ only by letter case. In this situation, the operation will fail rather than deliberately merge the conflicting files.

CrazyCopy displays an error message explaining the problem.

Example: Moving an NTFS USB Drive Between Windows Computers

Consider a USB flash drive formatted with NTFS and connected to a Windows computer that supports per-directory case sensitivity.

Several folders are created, case sensitivity is enabled on them, and files with names differing only by letter case are added.

The USB drive is then removed and connected to another Windows computer where the required per-directory case-sensitivity functionality is unavailable or cannot be used by CrazyCopy.

Although the drive is still formatted with NTFS, the destination may be unable to preserve the distinct filenames contained in the source.

Attempting to copy or move these folders may therefore fail because the destination cannot represent all the source files and folders without filename collisions.

CrazyCopy does not intentionally overwrite one case-distinct source file with another to resolve these conflicts.

Copy Over remains prohibited whenever the Source Folder or any of its subfolders has NTFS per-directory case sensitivity enabled