如何使用Lua将文件插入到zip文件中



我正在用Lua 5.1编写一个脚本,用于游戏引擎(EDGE)。

我需要我的脚本将大约20个文件复制到一个。miz文件(这是一个具有固定结构的压缩文件夹),并导航该结构,并从硬盘上的非压缩文件夹复制这些文件。

因为Windows 11是未来,所以我需要使用NanaZip而不是W11不支持的7z。

然而,我发现的所有例子都是使用LUA来压缩文件,而不是将未压缩的文件插入到压缩文件中而不解压缩。

这可能吗?

与@koyaanisqatsi类似,我尝试了7z。您没有评论我们关于为什么应该避免7z的问题,也没有评论是否允许您使用os.execute,但它应该提供一个很好的起点:

os.execute("7z a yourZip.zip yourFile.png")

其中aAdd的标志。

参见手册中的其他标志,如压缩:https://linux.die.net/man/1/7z

Windows 11也有tar有选项ru

D:temp>tar h
tar(bsdtar): manipulate archive files
First option must be a mode specifier:
-c Create  -r Add/Replace  -t List  -u Update  -x Extract
Common Options:
-b #  Use # 512-byte records per I/O block
-f <filename>  Location of archive (default \.tape0)
-v    Verbose
-w    Interactive
Create: tar -c [options] [<file> | <dir> | @<archive> | -C <dir> ]
<file>, <dir>  add these items to archive
-z, -j, -J, --lzma  Compress archive with gzip/bzip2/xz/lzma
--format {ustar|pax|cpio|shar}  Select archive format
--exclude <pattern>  Skip files that match pattern
-C <dir>  Change to <dir> before processing remaining files
@<archive>  Add entries from <archive> to output
List: tar -t [options] [<patterns>]
<patterns>  If specified, list only entries that match
Extract: tar -x [options] [<patterns>]
<patterns>  If specified, extract only entries that match
-k    Keep (don't overwrite) existing files
-m    Don't restore modification times
-O    Write entries to stdout, don't restore to disk
-p    Restore permissions (including ACLs, owner, file flags)
bsdtar 3.5.2 - libarchive 3.5.2 zlib/1.2.5.f-ipp bz2lib/1.0.6

(上面的cmd.exe是用:os.execute('cmd')从Lua打开的)
你可以用它提取一个ZIP,但据我所知,不能创建一个。
(tar -xf archive.zip)
但它是一个问题,你使用TAR而不是ZIP?

相关内容

  • 没有找到相关文章

最新更新