Problem: I have various files scattered over my entire C-drive (or any drive, folder or library), certain files I would like to backup and organize in someway. It is extremely tedious to click-through folders to find these files. I wrote a utility to automate the process; it’s a console app written in C#. Basically,  I point it to a source drive, I tell it what kind of files I want and  what to paths to ignore, and specify output organization structure…and let it run.

GitHub Repository:
It needs a bit more testing and code clean-up; but it’s functional and I’m using it.

A little bit of setup is required:

  • exclude.txt — contains a list of paths not to scan, for example:
    C:\Program Files
    C:\Program Files (x86)
    C:\Users\Rich\Documents\My Web Sites
    C:\Users\All Users
  • extensions.txt — contains a list of file extensions to look for, for example:
  • App.config settings:
    <add key=”SourceNode” value=”C:\” />
    <add key=”DestinationNode” value=”J:\FileBackup_temp” />
    <add key=”OrganizationFormat” value=”ByYear” />
    <add key=”UseMetadata” value=”true” />

SourceNode: the drive, library, or folder you wish to scan.
DestinationNode: where you wish to copy files to…the destination.
OrganizationFormat:   file organization at the destination, 4 possibilities

Flat — all files in one folder i.e. no hiearchy
ByYear — files organized by year of Create Date  (one level hierarchy)  ex. 2016
ByMonth — files organized by year and month of Create Date (two level hierarchy)  ex. 2016/Oct
ByDay — files organized by year, month, and date  of Create Date (three level hierarchy) ex. 2016/Oct/Oct03

UseMetadatatrue/false,  when set to true the Create Date will be pulled from metada (exif), if it exists. This is useful for digital photography.

I’ll improve this APP as needed for my purposes.