# Compare files in two folders with different sub-directory names and structure

I randomly copied and also moved some of my images to a different folder for making a video. How do I know which files were moved so as to copy them back to the source. The problem is both the source and destination folder have different sub directory structures within and softwares like scootersoftware, totalcommander couldn't help because of this (or am i using them wrong?). I just want all the names of files and their locations that aren't present in source but present in destination directory.

– You could have used hard links instead, to have those files in both locations at the same time without actually copying them. LinkShellExtension makes that pretty easy.

– The files which have been copied will have a different creation date (more recent) ; the files which have been moved will have retained their original creation date. So, searching for files according to their creation date might be a solution in a case like this.

– WinMerge2011 (a fork of the original WinMerge) has the option to compare folders with their subfolders but ignore the subfolders' structure : just click on the box beside “Include subfolders” once to have it “half-checked” and enable that option ; clicking a second time will make it ignore the subfolders entirely. I haven't tested that function yet so I can't comment on its efficiency or relevance in a case like this.

– AllDupe, a duplicate file finder, now includes the option of displaying non-duplicates only, i.e. files which are unique in the folders being analyzed. To make it proceed faster if those folders have many large files and you only want to recreate the original structure of the source folder, it can probably be set to scan both folders by size and/or name and/or modification date, without reading the contents of the files (but it's still recommanded, you never know when corruption can occur).

3rd party utilities like WinMerge or DiffMerge can help. For a CLI solution you may use the built-in Robocopy.

For example, the following command-line lists the differences (only sub-directories, not files.) between two parent folders namely folder1 and folder2

robocopy "d:\folder1" "d:\folder2" /E /S /NFL /L


To include files in the comparison report, remove the /NFL flag. Also, check out robocopy help to learn more about the logging options.