RandFill
An utility program for copying files in random order onto a removable (USB) mass storage device; written for the purpose of filling a portable MP3 player with randomly chosen files from my music archive.
- Limit how much of the device’s capacity should be used.
- Delete all or only certain types of files from the target device before the copying begins.
- Eject/Unmount the device from the system when the task is done.
- Create a playlist for the copied files.
- GUI and help text available in english and german.
Requires Microsoft Windows (tested with XP, Vista, 7, 8 and 10/Preview).
Published under the terms of the MIT license.
Download
- 32-bit: RandFill-1.2.1-x86-Installer.exe
- 64-bit: RandFill-1.2.1-x64-Installer.exe
Or get the source code from BitBucket.org
Version History
Summary of major and notable changes:
1.2.1 (2015-07-16)
- Directory on the current target device is being watched for file-system
changes (at the moment only size) to trigger a recalculation of the free
capacity; the obversation happens in a worker-thread. - The progress dialog now displays the amount of files copied so far.
- The button to remove a source path is only enabled if at least one item
(path) in the source list is selected. - The Close button on the copy-progress dialog is disabled; handling of the
Escape key is added. - The file operation (copying) checks for success/failure.
- The program differentiates between the copying being aborted by the user
or by the system (due to an error in the file operation).
1.2.0 (2015-05-17)
- Published under the terms of the MIT license and code is available via a public Mercurial repository on BitBucket.org.
- Improved installer (Nullsoft Scriptable Install System/NSIS):
- multilingual: currently support for English and German.
- installs required Microsoft Visual C++ Redistributable Package.
- Capability to create a playlist file (in M3U or PLS format).
- Program’s multilingual (englisch and german, for now); can be switched on the fly; see menubar.
- Comes with a (HTML) help file; see menubar.
- Reworked much of the code. Switched from plain Win32-API to the Qt framework for the GUI and several other components.
It’s nevertheless far from being a multiplatform program: The code that handles the devices is still mostly Win32-based. - Uses “CMake” as a meta-build system; support for 32-bit and 64-bit builds.
- GUI:
- Menu bar with entries for language selection, invoking help and displaying information about the program.
- Spin-box widget for controlling the free capacity that should be used on the target device.
- Explorer windows can be opened for a selected item on the sources list and for the target device.
- Tooltips with explanatory text when hovering over some elements.
- A message box shows up if no files are found in the source directory that you want to add.
- Vectorized the logo (to get the icon in a higher resolution).
- Button “Filter…” is gone for now, since neither the old nor the new functionality are working/existing at moment.
- Bugfixes:
- Issue #2: Ejecting an USB storage device working again under Windows 7; old method didn’t work due to changes in Windows Vista.
- Issue #3: Selection of ‘source’ was defined as ’empty’ when the the uppermost entry is removed.
- Issue #4: Bug when middle entries of ‘source’ (directories) list are removed.
- Issue #7: Empty device before copying only deleted files, but not folders/directories.
- Issue #9: Add path button was inactive after selecting source directory.
- Files would be copied into the target directory on the device, even when the user had unchecked the option.
1.1.0 (2007-08-06, 2013-09-01, 2013-10-20)
[Update 2013-10-20: Comes now with a proper installer; see download link above.]
Made this version a couple of years ago and then left it unreleased; retroactively published now.
Also, several items of previous releases have been removed in an attempt to prepare for a rewrite: No multi-language support any more, no longer based on WTL (a short-lived experiment), Filtering has been disabled…
- GUI: Swapped order of ‘source’ and ‘target’ sections.
- Added option to put the files in a sub-directory on the target device.
This should also fix the ‘capacity bug’, which is probably related to a FAT16 limitation. - Note: If the device should be emptied prior to copying, and the option for a target directory
is set, only that directory’s content is affected.
Also, as a reminder, only files get deleted, no directories. - Project builds now with Microsoft Visual Studio 2010 and runs on Windows 7.
1.0.7 (2007-07-28)
- Configuration file is now located below the user’s application data directory
(i.e. settings are per user, roaming), instead of the program directory. - Now using “Windows Template Library (WTL)” for the GUI instead of pure Win32-API calls.
- Internal changes, GUI tweaks. No new features; only minor improvements and bugfixes.
- Screenshot
1.0.6 (2006-10-08)
- Bugfix: Canceling a copyjob while the option ‘eject device’ was checked could cause the program (and even Windows’ Explorer) to hang.
- List of copied files and progressbar is hidden when no copy-job is running.
- The list-controls (source, progress) show horizontal scrollbars only when neccessary, and also adjust them to in the correct width.
- Moved progressbar into the statusbar.
- Progress status [when minimized] flashes only once when done.
- New ‘About’ window.
- Statusbar is cleared before a new copy-job begins.
1.0.5 (2006-09-25)
- The UI language can now be changed while the program is running.
- Progress view: List now automatically scrolls to the latest entry.
- The button to select the source folders now displays either the last path (shortened if too long) or a hint.
- Rearranged position/size of some GUI controls, modiefied labels.
- Most GUI elements are now locked while copy-job is running.
- Fixed the short window-flashing at start-up.
1.0.4 (2006-08-21)
- Added ability to open target device in file explorer.
- Rearranged and tweaked GUI: no tabbed view any longer, the filter button has been moved to the menubar, etc.
1.0.2 (2006-07-17)
- GUI language can be changed (german/english, requires application restart); settings are being saved in file.
- Added menubar for switching languages and invoking ‘about’ info.
1.0.1 (2006-05-08)
- Improved user feedback: Statusbar notifications, message boxes, reporting progress status in multiple ways.
- Window now starts in the center of the screen.
- Added translation strings.
- Improved keyboard navigation.
- Fixed threading issues that caused crashes.
- {First public release, i.e. put on my homepage}
1.0.0 (2006-03-28)
- Changed GUI: Now using a tab-view/control.
- Fixed ‘blank-status’-bug (occured while the first file was being copied).
- Added radio-buttons (“empty device”).
- Added capability for ejecting the target device when the job is done.
Birth (2005-08-25)
- Started the project (‘bottom-up’: implementing the playlist, detecting USB devices, etc. before working on GUI issues).