I’d like to do something like this in my program:
File zipFile = .....;
File destDir = ....;
ImaginaryZipUtility.unzipAllTo(zipFile, destdir);
I cannot possibly be the first to do this from a program. Where do I find a utility method like above? I tried to look at apache commons-io, but nothing there. So, where should I look?
It seems like it’s possible to do what I want using the TrueZip library:
https://truezip.dev.java.net/manual-6.html#Copying
This is not an ideal situation, since the library is quite large and with a larger scope than I need (and also with some peculiar and confusing details such as being organized around subclasses of java.io.File which are also called File for use in classes that typically also handles java.io.File instances!).
At least I don’t have to be in a situation where a majority of the code lines in the class are unrelated to the responsibility of the class, or to maintain a complex utility class in the project that is unrelated to the purpose of the module.
I think this is a typical example on the main reason why experienced developers are migrating from Java to Ruby. Despite an abundance of libraries in java, too many of them are poorly designed so that simple operations become just as difficult to perform as the more specialized ones. Seems like they are written from the bottom up by technology experts more eager to expose all details and possibilities than to make everyday tasks simple. The apache commons people deserves honor for creating libraries that relieve your class from code lines, especially loops and conditionals, that are unrelated to the business purpose of the class.