Archive7z icon indicating copy to clipboard operation
Archive7z copied to clipboard

Add inArchivePath in addEntry

Open wapmorgan opened this issue 5 years ago • 8 comments

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?

wapmorgan avatar Oct 02 '18 20:10 wapmorgan

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.

Gemorroj avatar Oct 02 '18 21:10 Gemorroj

+1, could you please provide a 100% working example?

scratcher28 avatar Jul 29 '19 13:07 scratcher28

@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);

wapmorgan avatar Jul 29 '19 23:07 wapmorgan

What about using FFI?

mvorisek avatar Jan 06 '20 15:01 mvorisek

@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.

Gemorroj avatar Jan 06 '20 17:01 Gemorroj

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.

mvorisek avatar Jan 06 '20 17:01 mvorisek

@Gemorroj Do you have the experiment code available and do you want to reconsider the ffi solution for this project again?

mvorisek avatar Jan 27 '20 12:01 mvorisek

@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.

Gemorroj avatar Jan 27 '20 18:01 Gemorroj