Compression 7Zip CLI使用LZMA压缩文件

Compression 7Zip CLI使用LZMA压缩文件,compression,7zip,lzma,Compression,7zip,Lzma,我尝试用LZMA压缩控制台中的文件 7z a -t7z output input or 7z a -t7z -m0=lzma output input 但是,我无法在客户端打开它 如何在控制台中将文件压缩为LZMA存档 问题可能是上述命令在存档中添加了一个文件。但是,我希望在没有文件结构的数据文件中压缩数据 是否有使用LZMA将数据文件压缩为压缩数据文件的选项 编辑 我看到了反对票,这意味着这个问题在某种程度上是“不正确的” 因此,我将尝试解释我想要实现的目标 我在服务器端压缩数据,并在客户端

我尝试用LZMA压缩控制台中的文件

7z a -t7z output input
or
7z a -t7z -m0=lzma output input
但是,我无法在客户端打开它

如何在控制台中将文件压缩为LZMA存档

问题可能是上述命令在存档中添加了一个文件。但是,我希望在没有文件结构的数据文件中压缩数据

是否有使用LZMA将数据文件压缩为压缩数据文件的选项

编辑

我看到了反对票,这意味着这个问题在某种程度上是“不正确的”

因此,我将尝试解释我想要实现的目标

我在服务器端压缩数据,并在客户端应用程序上使用它们。我在Node.js中成功地做到了这一点,如下所示:

const lzma = require('lzma');

lzma.compress(inputBuffer, 1, callback);

function callback(data, err) {
    writefile(outputPath, Buffer.from(data));
}
然而,这是非常缓慢的。所以我想打电话给7Zip进行压缩

我的.NET服务器也以类似的方式压缩它

byte[] barData;
using (var barStream = dukasDataHelper.SerializeLightBars(lightBars.ToArray()))
using (var zippedStream = zipLzma.Zip(barStream))
{
    barData = zippedStream.ToArray();
}
我的问题是,我无法在CLI中设置正确的选项,以便能够读取客户端中的文件

我的客户代码C#是:

通过CLI压缩时出现以下错误消息:

  $exception {"Data Error"}
  Data: {System.Collections.ListDictionaryInternal}
  at SevenZipLzma.LZMA.Decoder.Code(Stream inStream, Stream outStream, Int64 
  inSize, Int64 outSize, ICodeProgress progress)
  at SevenZipLzma.ZipLzma.Unzip(Stream stream)

由于代码在我使用Node.js压缩时起作用,而在通过CLI压缩时不起作用,这意味着有问题。

7zip对文件和目录进行存档,而LZMA生成单个压缩数据流。它们的格式不同。LZMA可以在7zip存档中用于压缩条目(或LZMA2或Deflate或其他几种压缩方法)

您可以尝试使用
xz
命令以
xz--format=LZMA
生成LZMA流

  $exception {"Data Error"}
  Data: {System.Collections.ListDictionaryInternal}
  at SevenZipLzma.LZMA.Decoder.Code(Stream inStream, Stream outStream, Int64 
  inSize, Int64 outSize, ICodeProgress progress)
  at SevenZipLzma.ZipLzma.Unzip(Stream stream)