getnamo / 7zip-cpp

Fork of SevenZip++ for modern builds.
Other
221 stars 93 forks source link

Slight addition to readme. #13

Closed keithjjones closed 8 years ago

keithjjones commented 8 years ago

This should be the extent of my fixes for a while. I don't know what else it needs, currently.

If you have a good idea on how to read items by the number of bytes to memory, please let me know. That would be a great addition.

getnamo commented 8 years ago

Sounds good, what do you mean by read items by the number of bytes to memory? is it like ordering, or batch reading buffers into memory?

There will probably be a small divergence for the ue4 branch, because it needs to reverse https://github.com/getnamo/7zip-cpp/commit/480b4d0eed1df8e165ee31616a155258c07905d5 for it to compile with the engine. Other than that, your code to detect compression type works great (tried zip, 7z, rar all worked without issues). Still have zipping and listing tests to complete and then that will be the first public release for ue4 plugin.

Things that could be improved: -pushing 0->100% progress callback form the ue wrapper into 7zpp lib. Adjusting code so that it will work with SetCompleted (this function works a bit inconsistently, so I'm doing progress per file for now which is acceptable). -Support for password protected files

Wishlist: -is it possible to do threading in the library, or do we need a .dll? -Move away form .dll into cross platform support

keithjjones commented 8 years ago

That all sounds great. I'll keep adding what I think is useful and you can put them away where you think they fit best.

I have a requirement to unzip items to memory similar to the standard read command so that the item uncompressed data can be read a buffer size at a time. That is what I mean. Make sense?

I'm making some basic classes for archives that the lister, extractor, and compressor inherit. They should be added momentarily.

getnamo commented 8 years ago

The basis for this library is the com port interface with the 7z/7za dll. This is essentially all the documentation we have to work with (console client implementation included in the source): https://github.com/keithjjones/7z/blob/c8852a6dcaf99ae0fb29de8d97736ffa1b3a180e/CPP/7zip/UI/Client7z/Client7z.cpp

See if you can find extract to memory somewhere there, if not there check out this post where the creator of 7zip chimes in on extracting to memory: http://sourceforge.net/p/sevenzip/discussion/45797/thread/9e05f461/

keithjjones commented 8 years ago

Thanks. Yes, I read that. Here are the threads I bookmarked about reading into memory:

http://sourceforge.net/p/sevenzip/discussion/45797/thread/5e5fc681/?limit=25 http://sourceforge.net/p/sevenzipjbind/discussion/757964/thread/b64a36fb/ https://www.autoitscript.com/forum/topic/163421-7zdll-extract-file-to-memory/

This is all something I'm going to have to sit down and really figure out.

keithjjones commented 8 years ago

Do you know if it is possible to create new stub projects in a solution, one to take care of 480b4d0 and one that would be the reverse of it for your requirement? I'm not sure how to do that within a solution file.