Fast Backup for SD Cards

by Dmitry Kirsanov 12. July 2019 08:59

If you are photographer (as in – snapping pics often) or have dashcam / drone / similar photo/video device, you may know the problem of having a one-button copy of just the files you need to where you need them.

For example, I have a directory in home NAS (Network Attached Storage), where I keep videos from car dashcam, so if I would suddenly receive a fine for speeding, I could prove that I didn’t. I don’t like bringing the dashcam  microSD card from garage, as there is a good chance I’ll forget to bring it back, and will waste time later. Ideally would be to move the card from dashcam, insert it into the phone or tablet using external card reader, and press the button to copy only the video files.

In case of photo camera, I’d like to do the same – just press the button, and let all jpg and mp4 files be moved to local drive, hence removing them from SD card.

In case of dashcam, I’d like to keep the last video file intact. The reason is – the GPS device may take awhile to refresh the time from satellites, and will not reset the time if there is at least one video file with newer timestamp.

In case of force majeure I would want to only copy files that were made during last few minutes, and that should be an option too.

Since I want to copy files from external card, I’d like that card to be automatically dismounted when done. In some cases I’d like the local copy of files to be encrypted (say, if copying to relatively public computer, or the nature of images is sensitive). And if I’m copying them to cloud drive, I may want to reduce the bandwidth to particular amount – e.g. even if the card is full, move only 5 Gb a time.

And last, but not least, since we have so many options, and they are likely to be unique per source, I’d like to save this configuration to each external card, so it would be loaded next time the card is inserted. I’d also like this configuration to be editable in normal text editor, hence let it be a JSON file.

I tried to find an app that would do this, and even asked professional photographers, but it appears that they do it manually. There is also a hardware button on some NAS that copies all files from external drive, but you can never be sure it happened, and files aren’t removed from external drive. So, once again, I had to do it myself.

The main idea was to create something mobile, so it could be used in scenarios below, but I cheated a little, since I have Windows tablet and quite portable laptop. I will, however, port this app to Android later on.

Scenarios:

  • You are abroad, and want to backup your photos to home using cloud drive. OneDrive, Dropbox, custom cloud storage – too many to mention. You have a client on your tablet or phone, and would prefer to move all files from camera SD (CF, microSD, any) card to shared cloud folder. When you are abroad, there is a chance that camera will be lost or damaged, hence frequent backup is a good idea.
    As an addition to this scenario I would add a computer at home or in the cloud, that would monitor the contents of this shared directory, and move files further to your home NAS. Actually, some NAS solutions can do it out of the box. This way, even if your cloud subscription is limited, for example, to 5Gb, you could move all 16Gb from your card to shared directory, and they would be processed over the next hours automatically, but your camera would already be free for taking new pictures.
  • You need to backup recent videos from your dashcam in the event of accident. You don’t have much time, but need to ensure that your evidence is backed up. Copying all 64 or 128Gb from your dashcam would take ages, it’s better to press one button and know that last 10 minutes of videos are copied, most recent files copied first.
  • You are journalist, and need to backup your latest photos asap, because your device will be confiscated in 3… 2… 1…

Ok, I think the picture is clear now. Now, let’s get to implementation.

In it’s current form, it’s Windows application. Meaning it will work on laptops and windows tablets, but Android phones and tablets will have to wait for a port. Sufficient for my needs at the moment, but hardly a solution for a “vacation with no Windows device” scenario.

CardBackup

How it works

When you start the app, it checks if any removable drives are inserted. If there are any, they are listed in dropdown list at the top of the window. You see the volume name, drive letter, total size, how much free space is left (in percent), and the file system.

If there are no removable drives in the system, you’ll see the message about it, and application will show all your drives. If you make changes – e.g. insert flash card / stick, just press “reload” button.

Each card / drive may have a configuration file saved in root directory. It’s a JSON file called ffsconfig, and it has hidden attribute. You can edit it using Notepad, if needed. When card is selected in dropdown list, application checks if configuration file exists, and loads the preferences. Therefore you can have your file masks, destination directory and other settings quickly applied.

Destination

That’s your target directory. It can be any mounted drive or network folder (“\\server\folder”). If you specify network folder, then we can’t find out the file system and hence NTFS encryption option will be unavailable. If your network folder is on NTFS drive and you want encryption to be enabled, mount that folder first.

Right from the text box there are 2 buttons – one to select directory, and second to open that directory in Windows Explorer.

Remember this destination in drive profile option allows to save destination when you are saving configuration file in your removable drive.

Random subdirectory option, when checked, will create a random sub-directory in form “cc_DDMMYYYY” in selected directory, and copy / move files there, instead of selected root directory.

Options

Dismount drive when finished – once copy / move completed, eject removable drive. Only works if source drive is removable.

Move instead of copy – files will be moved, not just copied. Originals will be deleted.

Recent files or Small files first – whether we start with copying recent files, or small files first. If you want to copy all files, but not sure how much time you have, then first option will copy newest files first, and second – smallest, ensuring you copy most files in time frame.

Process all files / only files created during last time – it’s self-describing, second option will only copy / move files created during last X minutes. Useful, when you need to backup / share only the latest footage.

Leave latest file intact – even if you are moving files, the latest file will be kept on card. This is useful when device uses files to ensure the device time doesn’t fall behind that value. Note, that it’s the latest file of those that are processed. This latest file will be copied, but not moved.

Overwrite existing files – if the same file found (same name, size and contents) – it will be overwritten. Otherwise the file is not processed, application moves to the next file.

Only copy files with these extensions – will only process files with these extensions. This is useful, when you only need to copy photos from your camera, and process videos later. Or only copy footage from dashcam, but not the configuration files.

External batch processing – that’s future feature, will enable writing all commands to external batch file and run it instead of processing within app.

NTFS encrypt destination files – the copy of your file will be encrypted, if the target drive file system is NTFS.

Process maximum X Gb – if you don’t want to exceed particular size (e.g. cloud based storage or flash card) – you can specify the size here.

Save configuration file – write configuration file to source drive.

Save as default – save some settings in windows registry, so they would become defaults for new drives.

System Requirements

Windows Vista SP2 or higher (that includes Windows 7, 8, 8.1 and 10), or Windows Server 2008 and up.

.Net Framework 4.5 (will prompt to install if you don’t have it yet)

Disclaimer

This application is provided “as is”. The only guarantee is that it doesn’t contain malicious code or any hidden functionality, same as all other software on this website.

I am the only user of it, hence if there are bugs, they will be fixed as soon as I’ll encounter them. If you found a problem in the app, don’t hesitate to contact me, and I’ll fix it asap. This is work in progress.

Download

Files shipped in RAR archive, unpack this archive wherever you want and run QCB.exe.

Note: file updated 02/09/2019, version 1.1 – fixed issues with moving files while skipping existing files. Also fixed the Stop button functionality.

QCB.rar (251.17 kb)

Tags:

blog comments powered by Disqus