It would be nice to have a GUI that offers the following features:
- Text input box plus browse button for the Source Directory
- Text input box and browse button for the Destination Directory
- Checkbox to specify that the archives should be deleted after extraction (default = unchecked)
- A button to start the extraction process.
Remember the source and destination directories by saving in Application Settings, but always set the checkbox to Unchecked every run.
When the Extract
button is clicked, perform the following checks before starting the extraction.
-
Destination Directory - for the extraction to work this must exist and should ideally be empty. So:
- If it doesn’t exist, prompt the user and offer to create it.
- If it exists and is empty, then you;re good to go; start extracting without further ado.
- if it exists but is not empty, prompt the user for confirmation before starting the extraction:
The destination directory is not empty - possible data loss. Do you want to procees? (Yes/No)
Once all the checks have passed, build the appropriate command line and start the bulk extractor in a new process. While the extraction is running, make sure the user has a way to cancel it with a Cancel button.
Controls should only be enabled when they are valid and disabled otherwise.
Extra Credit: It is always good to display a Confidence Indication during a long running operation. So while the extraction process is running, we should try to show the user that somethign is happening. There are many ways you could do this, but here are a few ideas:
- Show the “wait” cursor
- Monitor the destination directory and show a count of the number of files extracted so far. If you can work out ahead of time how many files you expect to be processed, then you could show a progress bar.
- Capture the console output from the running extractor process and display the output in a Console Control.
Remember the golden rule of user interface design: Thou shalt not block the UI thread, for any reason, ever. The user should always be able to click Cancel and move/resize/minimize/restore the UI while the extraction process is running. You may find this class helpful.
Originally created at 17/08/2019 02:28:24 by Tim Long as a enhancement with severity major.