CrazyCopy does not support the following :
- File patterns i.e. D:\TopLevelFolder\*FolderSubName*
- Specifying paths with . and .. which are not normalized but relative i.e. D:\TopLevelFolder\Level2\..
- Wildcards i.e. *. or D:\TopLevelFolder\Foldername?xx
- Copying or moving folders that contain Cloud Placeholders. These are special files and can be in different states like empty, partial or fully hydrated. Examining or manipulating these files can cause them to become fully local taking up more disk space, or slow down the copy or move as the files are downloaded from the cloud. Use normal Windows file system management for Cloud Files.
- Deep copies of Special Windows and NTFS Types i.e. links, shortcuts and junctions. These objects are not parsed and their target folders are not deep copied. Only the special object itself is copied or moved not what it is referencing. If the target or referenced file or folder is also being copied or moved, then after the symbolic link, shortcut or junction is recreated in the Destination Folder, it will point instead to the new copied or moved target. If the target moved then the special object that was pointing at it would have now been missing its target file.
- UNC Paths are not supported
\\Server\SharedFolder\Projects\Test - The Windows concept of a Current Folder for each drive is not supported. Using D: or d: will map to the root folder of the same volume NOT the current folder i.e. D: will become D:\, which are treated the same as d: and d:\
- CrazyCopy excludes these Windows system folders when copying a volume root:
$RECYCLE.BIN
System Volume Information
These folders are managed by Windows and are associated with the volume on which they reside. Windows will automatically create new versions of these system folders when required. - If you have multiple drives mapped to the same folders or drives, then it’s possible to confuse any file system and it may end up performing recursive Copy or Move operations. Therefore avoid mapping multiple drive letters to overlapping directory trees when using CrazyCopy i.e.
M:\ points to D:\MyDrive
AND
N:\ points to D:\MyDrive\copyme
Now CrazyCopy cannot detect that M:\ and N:\ have the same root, therefore performing a copy or move with
Source: M:\
Destination: N:\copyme
This will result in D:\MyDrive being copied into D:\MyDrive\copyme, and obviously this will result in a recursive copy or move.
Exhaustive Rules
These are the rules enforced by the application. Operations that violate these rules are automatically prevented. When prevented, an explanation is given allowing the user to resolve the issue. CrazyCopy, rather than just showing an obscure error message and number for example “Error -422”, will try to give a clear and actionable message.
- The Source and Destination paths cannot refer to the same folder, as this would lead to infinite nested folders.
Example:
Source: d:\source
Destination: d:\source
Cannot copy d:\source to d:\source as it would create d:\source\source recursively, because the newly created destination folder would become part of the source tree, causing the same directory structure to be copied repeatedly.
d:\source\source\source\source - To prevent recursive copying and invalid moves, CrazyCopy does not permitted the Destination Folder to be located inside the Source Folder directory tree.
Example Not Allowed:
Source: d:\source\
Destination: d:\source\backups
Final Destination: d:\source\backups\source
d:\source cannot be copied or moved to the folder d:\source\backups as this would result in a nested infinite copy to d:\source\backups\source\backups\source etc.
d:\source can be copied or moved into the folder d:\source2\backups as source2 is a different parent folder than source
Example Allowed:
Source: d:\source\
Destination: d:\source2\backups
Final Destination: d:\source2\backups\source - The Source and Final Destination paths cannot point to the same folder. This would be a Redundant Copy, as the source and final destination folders would refer to the same directory.
Example:
Source: d:\mysource
Destination: d:\
Final Destination: d:\mysource
Cannot copy the mysource folder to d:\ as this would copy the same folder contents over itself i.e. copy d:\mysource to d:\mysource - A root path refers to the top-level directory of a drive or volume i.e. d:\ and the following path strings are considered the same root folder in CrazyCopy:
Example:
Equivalent Paths Pointing To Same Root Folder: d: , D: , D:\ , d:\ - A root folder cannot be moved. Therefore, Move operations are not supported when the Source folder is a volume root.
Example:
Source: D:\
Destination: E:\MoveHere
Source cannot be moved to any destination including another root i.e. E:\D_Drive or E:\
- Move operations do not support overwriting or merging with an existing Final Destination Folder. Only Copy operations support Copy Over. If the Final Destination Folder already exists, Move operations will be rejected.
Example:
Source: D:\MySource
Destination: E:\
Final Destination: E:\MySource
If the folder E:\MySource already exists then the MySource folder cannot overwrite it and move there. - Copy cannot overwrite or merge with an existing Final Destination Folder when Copy Over is disabled
Example:
Source: D:\MySource
Destination: E:\
Final Destination: E:\MySource
If the folder E:\MySource already exists then the MySource folder cannot copy over it unless Copy Over is Enabled. - If Copy Over is Enabled and the Final Destination Folder already exists, a Copy operation will merge the Source Folder with the Final Destination Folder
Example:
Source: D:\MySource
Destination: E:\
Pre-Existing Final Destination: E:\MySource
If Copy Over is Enabled and the folder E:\MySource already exists, then a Copy operation will result in the files in D:\MySource overwriting any files with matching destination paths in E:\MySource, thus merging the contents. - When Safe Move is Disabled, move does not support moving folders between volumes
Example:
Source: C:\MoveMe
Destination: D:\MoveHere
Final Destination: D:\MoveHere\MoveMe
Cannot move C:\MoveMe to D:\MoveHere without Safe Move being Enabled first because the folders are on different volumes i.e. C: and D: - CrazyCopy normally performs case-insensitive comparisons of file and folder names. When creating new destination files or folders it preserves the original letter casing used in the Source Folder.
Examples of Case Insensitive Naming:
When Comparing or Finding these are all paths to the same folder:
d:\myfolder
D:\MYFOLDER
D:\MyFoldER
Likewise these filenames all refer to the same file:
d:\myfolder\myfile.txt
D:\MYFOLDER\MYFILE.txt
D:\MyFoldER\MyFile.txt
When creating new files and folders like this :
d:\MyNeWFolder
A new folder is created with exactly that specific letter-case. So CrazyCopy will not create
d:\MYNEWFOLDER or
d:\mynewfolder
It creates a folder with the exact case specified
d:\MyNeWFolder
NTFS directories with per-directory case sensitivity enabled can contain multiple distinct files or folders whose names differ only by letter case. These directories are subject to the additional restrictions described in the Rule below. - If the Source Folder (or any of its subfolders) has NTFS per-directory case sensitivity enabled, Copy Over cannot be used. This restriction reduces the risk of accidentally overwriting existing files and folders. Directories with case sensitivity enabled can contain distinct files and folders whose names differ only by letter case. So for example an NTFS folder that has case sensitivity enabled may contain the following files and folders
myfile.txt MYfile.txt MYFILE.txt
myfolder MYFOLDER MyFolder
If Windows, the Destination Folder or the Disk where the Destination Folder resides dont all support per-directory Case Sensitivity, then the above files and folders could overwrite each other. Therefore Copy Over must be disabled. Again CrazyCopy will fail early and prevent Copy Over being used if the Source Folder Tree supports case sensitive folders.
Disabling Copy Over does not mean that a case-sensitive Source folder can be copied successfully. If the Destination cannot preserve distinct filenames that differ only by letter case then the Copy operation may fail. - Relative paths are not supported. Only fully formed and normalized paths are supported.
Example:
Acceptable Path: d:\fullyFormed
Unacceptable Paths: d:\relative\path\..\other\path\.. - Hard links are copied as ordinary files by CrazyCopy. Each hard-link entry becomes an independent file in the Destination Folder. The original hard-link relationship is not preserved; each destination file is independent of the others.
- File and Folder Shortcuts (.lnk files), Junctions and File or Directory Symbolic Links are copied and moved as link objects. CrazyCopy does not follow a shortcut, junction, or symbolic directory link, so it does not Copy or Move the files and folders that are accessible through it. Deep copying through a folder shortcut, junction, or directory symbolic link is not supported.
- When a volume root is used as the Source Folder for a Copy operation, CrazyCopy cannot construct the Final Destination Folder by appending the source folder name to the destination path. Therefore, CrazyCopy constructs the Final Destination Folder by appending a drive-letter name, e.g.,
D_DRIVE, to the Destination Path. If this folder doesn’t exist it will be created as part of the Copy operation. If the folder already exists, the Copy operation is rejected unless Copy Over is enabled.
Example:
Copy the D: drives root folder to a Destination Folder
Source Folder: d:\
Destination Folder: f:\Dest
Final Destination Folder: f:\Dest\D_DRIVE
The contents of the root d:\ will be copied into the folder f:\Dest\D_DRIVE and if the folder f:\Dest\D_DRIVE already exists then the Copy will only proceed if Copy Over is Enabled. - If a link or shortcut referenced file (target file), or a junction, shortcut or symbolic link referenced folder (target folder) is included within a Source Tree, then it will be copied or moved as part of the Copy or Move operation i.e. using a normal file copy. The corresponding target link of any Destination shortcut, junction, or symbolic link, will be updated to point to the new target reference file inside the new copied or moved tree. This means the target will refer to the newly copied or moved destination object not the original. References to objects outside the Source tree will continue to point to their original target objects. Where necessary, relative references may be converted to absolute references to preserve the targets integrity.
Example:
Source Folder: D:\MySource
Source SubFolder (and target/referenced link folder) : D:\MySource\LinkFolderTarget
Directory Symbolic Link : D:\MySource\MyLink
Destination Folder: D:\MyNewDest
Final Destination Folder: D:\MyNewDest\MySource
New Copied Final Destination SubFolder (and target/referenced link folder) : D:\MyNewDest\MySource\LinkFolderTarget
Newly Copied Link in Final Destination: D:\MyNewDest\MySource\MyLink
So the Symbolic Link MyLink which originally referenced the target folder LinkFolderTarget (which resides inside the Source Folder), is copied to the new Final Destination Folder D:\MyNewDest\MySource\MyLink. Because the link D:\MySource\MyLink was pointing to a file inside the Source Folder e.g. D:\MySource\LinkFolderTarget ,the new link file’s target will be modifed. Instead of continuing to referenceD:\MySource\LinkFolderTarget, the newly copied link will reference D:\MyNewDest\MySource\LinkFolderTarget - The Source Folder will always remain intact and untouched unless a Move is being performed. A Safe Move deletes the Source Folder only after the Source Folder has been copied to the Destination Folder, and the Destination Folder has been validated. When Safe Move is Disabled, CrazyCopy uses the OS Move operation. For a successful same-volume Move, the Source Folder will no longer exist at its original location after the Move completes.
- After a successful operation, the Destination Folder contains the expected files and folders. However, if an operation is cancelled or fails before completion, the destination may be only partially populated.
If the Destination Folder already existed before the Copy started then all unique files that existed in the Destination that were not also in the source folder, remain untouched. So no files are removed from an existing Destination Folder.
All duplicate files that were in both the Source and Destination Folders will be overwritten if the Copy succeeds.
If ANY operation fails or is cancelled, do not assume that the Destination Folder contains a complete or consistent copy of the Source. Inspect the Destination Folder and repeat the operation as appropriate. - Copied files and folders do not preserve their original access control lists (ACLs). Instead, destination permissions are determined by the destination directory’s permissions and inheritance settings. During a native same-volume Move (Safe Move disabled), the original permissions are generally retained.
- The Windows concept of a per-drive current directory is not supported. CrazyCopy interprets a path such as D: as the Root Folder D:\
- Non-root folders must use a backslash \ to separate folders in a path. For example this is not a legal path
d:Source
as the above must be expressed as
D:\Source or d:\Source
Paths can not use double backslash \\, or any forward slashes / as path seperators. - Drive letters are case-insensitive. Therefore,
D:andd:refer to the same drive - If a user Cancels an operation CrazyCopy will begin terminating all running threads safely. Depending on when the Cancel is clicked the Source and Destination Folders may be fully populated with the expected files from the Source Folder, or partially populated.
This table describes the expected states of both Folders if an operation is cancelled at the specific points specified below.
| Action | WhenUser Cancelled job | Merge | Destination Already exists | Source Folder State | Destination Folder State |
| Copy | During Copy Phase | No | No | Untouched | Exists but will be Partially Populated from Source Folder. |
| Copy | During Validation Phase of Copy | No | No | Untouched | Same as above. User can’t cancel after the Copy phase of a Copy Over. |
| Copy Over | During CopyPhase | No | No | Untouched | Exists but will be Partially Populated from Source Folder. |
| Copy Over | During Validation Phase of Copy | No | No | Untouched | Same as above. User can’t cancel after the Copy phase of a Copy Over. |
| Copy Over | During Copy Phase | Yes | Yes | Untouched | Destination Folder still Exists. It will be Partially merged with Source Folder.Original Files that were in the Destination Folder and are not in the Source Folder remain untouched.Files in both the Source and the Destination Folder will be overwritten by the Source Folder copies. |
| Copy Over | During Validation Phase of Copy | Yes | Yes | Untouched | Destination Folder still Exists, Fully Merged with the Source Folder. Original Files that were in the Destination Folder and not in the Source Folder remain untouched. Files in both the Source and Destination Folder will all be overwritten by the Source Folder copies. Unique filenames in the Source folder will now be present in the Destination. |
| Unverified Move OS Move | During OS Move (Same Volume) | NA | No | Source Folder is still intact unless it has been moved already | Destination will be Fully Populated if the Source folder was moved before Cancel |
| Safe Move | During Copy Phase of Move | No | No | Untouched | Destination Will be partially intact |
| Safe Move | During Validation Phase of Move | No | No | Untouched | Destination likely to be fully intact (but not validated) |
| Safe Move | During Source Removal at End of Move | NA | No | Source is Partially Removed (Source was successfully copied to the Destination Folder and Validated) | Destination is Fully Populated and Validated |

