"Archive tester" is a tool to facilitate testing of massive collections of mixed archive files such as *.7z, *.bz2, *.gz , *.rar *.tar, *.xz, *.zip, *.exe, *.r00/r01, *.z00/z01, *.001... and *.flac. I think that it may be useful to other people so I recently made it a little cleaner and made it available.
Originally, it tested *.rar, *.7z and *.zip files. Recently I include support for more types supported by 7z.exe, and the support for *.flac files. *
It is still a very fresh project and (constructive) feedback is welcome.
You may find it at: http://thomasconte.net/it/tools/archive-tester/
* You need to give it the path to flac.exe and 7z.exe in the Settings tab. Requires .NET 4.0+. Tested with 7z.exe 16.04 , flac.exe 1.3.2 win32/win64. UnRAR.exe is included in the application files.
Version 0.1.4.0 available:
- Skip button (skips current file being tested)
- Timeout setting (skips current file being tested)
- Progress bar now based on byte progress instead of file progress.
Version 0.1.4.1 available
Some bug fixes and improvements, see section "Version history" after following link in original post.
Does it use FLAC files own md5 checksum tag or what does it check to know if they are alright?
The output of flac.exe test function. So it's flac.exe that is performing the largest part of the test, I guess it's using it's MD5 but "Archive tester" doesn't access it directly (I could give it a try for future versions but that is not planned for now).
is available (big update).Change logParallel testing
- Testing processes can now be ran in parallel (multithreaded). Default thread count is based on .NET's "Environment.ProcessorCount" which counts your computer's logical cores. There is a setting to change this manually too.
Previous version was singlethreaded, relying on the fact the algorithms such as RAR5 are multithreaded. But some, for instance RAR4, are not multithreaded. This should bring a huge performance gain when testing a large number of files encoded with singlethreaded algorithms (or at least when testing algorithms are singlethreaded).
: I still have a more flexible file extension/tester matching system in mind, but here is already something that should solve many cases.
- *.001 are now testable through 7z.exe
- *.r00 and *.r01 are now testable through UnRAR.exe, *.r01 is considered non testable if matching *.z00 exists in the same folder.
- *.z00 and *.z01 are now testable through 7z.exe, *.z01 is considered non testable if matching *.z00 exists in the same folder.
- Prevented case when all files ending with *.rar but belonging to the same multivolume archive would get tested along with each other. Which resulted in n2-1 redundant tests (if I got the formula right). Files ending with ".part1.rar" are still considered testable while all other volume, following pattern ".part[N].rar" are now considered non-testable.
- ?: Should multivolume non-first volumes be counted as non-testable or simply ignored? For now they are counted as non-testable.
I still have a more flexible file extension/tester matching system in mind, but here is already something that should solve many cases.
- *.exe are now optionally testable. *.exe first get tested with UnRAR.exe, if not a RAR archive, a *.exe file will then be tested by 7z.exe, if failed, it will be counted as failed test. There is a checkbox to test or ignore *.exe files. Default value: false.
Stability and efficiency
- In the "Inputs: Paths to be tested" field, you may now include/exclude specific files, the same way you would include/exclude a folder.
- There is now a setting to automatically skip some folders by name (separated with "|"). Default value: System Volume Information | $RECYCLE.BIN. (In previous versions, "$RECYCLE.BIN" was hard-coded.)
- Prevented cases when some file could be tester multiple times or counted multiple times as non testable files (typically if a folder and its parent folder were both set as inputs).
- Closing main form/application now more efficiently closes background threads.
- Stopping during discovery process will now be much faster (kind of instant).
- At first start, the input text field is now filled with a demo/tutorial, that should be able to scan you all computer if started.
- Tests that have been stopped by clicking on "Stop" now count as skipped.
- Possible future improvement: Progress indicators work fine is the full process is ran. Using "Skip" or "Stop" buttons result in skipping files, which may make progress indicators interpretation arguable. This does not look like a priority but may possibly be re-thought in the future. Probably in a smaller update.
Dependencies and compatibility:
- "Skip" button is now disabled during the discovery process and only activated during testing process.
- Progress indicators that can only be evaluated after at least one file has been tested (such as "Est. total time") now read "?" before they can be evaluated, instead of "00:00:00.0000000".
- "Launch/Testing" button now reads "Scanning" during the scanning process (instead of "Testing").
- "Time spent on current file" is replaced with the count of active parallel tests when parallel testing.
- .exe path text boxes and most setting buttons are now disabled while processing.
- Tested with UnRAR.exe 5.60 and 7-Zip 18.05.
- Update UnRAR.exe to version 5.60
- On my Win7 computer, stopping the testing process ("Stop" button") gets the application stuck with one running parallel test running (according to UI). This did not happen on the Win10 computer where I write the code. Cause unidentified so far.
is available.Change logNew
- UI: It is now possible to drag and drop files and folders into "Inputs" field. There is a checkbox in settings if you wish to deactivate it.
- Fixed?: When stopping testing process while doing a lot of parallel tests, it may happen that the testing queue never gets emptied and UI doesn't get reset. Hopefully this is solved now.
- UI consistency: Corrected: "Launch tests" and "Skip" buttons were not reset when stopping during discovery phase.
- UI consistency: Corrected: "Browse for a file to include/exclude" and "Overwrite 'Input' text field with initial demo/tutorial" buttons, "Always skip these folders" text field and "Try testing *.exe file with UnRAR first, then with 7-Zip." checkbox were not disabled when launching tests.
- Updated embedded UnRAR.exe to version 5.61
- Tested with UnRAR 5.61 (x64), 7-zip 18.06 (x64) and flac.exe 1.3.2 (x64)
- (Code signing self-signed certificate had to be changed after switching my environment to a new computer. Not sure yet if it may impact installation.)