I need a GUI application that will run on a Windows computer that will allow an operator to copy the contents of a folder to one or more USB Mass Storage Devices (memory sticks, etc). All attached USB Mass Storage Devices should be autodetected, and selected as targets by default before the operator starts the copying.
The following requirements apply. The program should:
1) Autodetect all USB Mass Storage Devices connected to a system
2) Select a folder on the computer's hard drive as a source folder
3) Automatically select all found USB Mass Storage Devices as targets, but let the user deselect one or more
4) Click a button to copy the contents of the folder to all the selected USB Mass Storage Devices
5) Files should be copied as fast as possible. In parallell if that is fastest, in sequence if that is faster all in all. If this can be built as an option (parallell or sequential write, set from a configuration file or registry entry) so that the operator can choose himself, that might be a good way to make benchmarks
6) Good error detection. If a write error occurs to one memory stick, the program should issue an error, but continue writing to all the other memory sticks. Please consider a way to indicate which memory stick failed, to help the operator find the right memory stick and discard it.
7) Logging to file with timestamps, so that errors and successes can be checked later. Do not worry about log rotation. Do not stop the program because of logging errors, but display a popup showing that something is wrong with logging, and continue writing data to memory sticks as usual in the background.
8) The application should work on systems using several USB hubs to support many USB devices. A single USB controller can handle 127 USB devices, and a computer can have several USB controllers. While writing to 127 devices on a single controller in parallell would kill performance, the software should not impose arbitrary limits on the number of supported devices.
Please let me know if you have any questions.