Archive7z
Archive7z copied to clipboard
Add inArchivePath in addEntry
Now addEntry($file, $includeSubFiles = false, $storePath = false)
does not support setting name of file in archive. Do you plan to add functionality to specify in-archive path of file when adding it?
It seems that 7zip does not have such an opportunity. You can combine addEntry
and renameEntry
.
This task can be left as an improvement, but not in the near future.
+1, could you please provide a 100% working example?
@scratcher28, first of all, rename function is available only from 9.30 alpha version of 7zip.
Example is simple (from UnifiedArchive):
$this->sevenZip->addEntry($filename);
$this->sevenZip->renameEntry($filename, $localName);
What about using FFI?
@mvorisek I tried to use ffi, but because ffi does not support preprocessor directives (see first note https://www.php.net/manual/en/ffi.cdef.php), it is very difficult to load the header file. I've put it off for now.
What about preprocessing the header files with https://github.com/metala/ccpp ? It is quite old and not very popular project, but it might be enough and seems to be well written based on the C specs.
Currently the only article on web using FFI is https://stackoverflow.com/questions/18562959/python-cffi-7z-dll-com-access-violations-sometimes and it is for Python. It is also only for extraction. But it seems that only a few C declarations may be required which can even be hardcoded in this project.
@Gemorroj Do you have the experiment code available and do you want to reconsider the ffi
solution for this project again?
@mvorisek I don't plan any activity with ffi
for the foreseeable future.
I deleted my experiments because I thought the technology was still too raw. Either requires a decent knowledge of C.