在红宝石的devkit是7-ZIP基于自解压压缩包.
我想静静地调用它,而不必安装7-Zip将文件解压缩到我选择的文件夹,这样我就可以编写安装脚本.我想它是这样的:
cmd> DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe /silent /dir="C:\DevKit"
Run Code Online (Sandbox Code Playgroud)
但是,这当然不起作用.我必须使用哪些命令行标志来静默地将此存档提取到我选择的文件夹中?
如何将此设置转换为命令?
结果如下:
// Manual Compression (see the image above)
Compressed Size: 12,647,451 bytes
// Ultra
7z a -t7z Files.7z -mx9 -aoa
Compressed Size: 12,676,886 bytes
// LZMA2
7z a -t7z Files.7z -m9=LZMA2 -aoa
Compressed Size: 14,237,515 bytes
Run Code Online (Sandbox Code Playgroud)
我在这里看:http:
//sevenzip.sourceforge.jp/chm/cmdline/switches/method.htm
我将把它放在一个批处理文件中.
我正在尝试自动提取用7-zip压缩的大量文件.我需要自动化这个过程,因为a)我想要解锁多年的数据和b)我想与其他人分享我的代码,并防止他们手动重复这个过程.
我的计算机上安装了WinRAR和7-zip,我可以使用任一程序轻松打开这些文件.
我环顾四周unzip untar和unz命令,但我不相信他们中的任何一个都能满足我的需求.
我对压缩一无所知,但如果它有任何区别:这些文件中的每一个只包含一个文件,它只是一个文本文件.
我非常喜欢不需要用户安装其他软件(如WinRAR或7-Zip)并执行命令的解决方案shell,尽管我承认只有R和CRAN软件包可能无法执行此任务.我实际上相信shell.exec使用其他参数运行这些文件可能适用于安装了WinRAR的计算机,但同样,我希望尽可能避免安装.:)
运行下面的代码将加载我试图提取的文件 - .7z文件files.data是需要解锁的.
# create a temporary file and temporary directory, download the file, extract the file to the temporary directory
tf <- tempfile() ; td <- tempdir()
file.path <- "ftp://ftp.ibge.gov.br/Orcamentos_Familiares/Pesquisa_de_Orcamentos_Familiares_2008_2009/Microdados/Dados.zip"
download.file( file.path , tf , mode = "wb" )
files.data <- unzip( tf , exdir = td )
# how do i unzip ANY of these .7z …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用7-Zip备份Powershell(v2)脚本中的一些文件.
我有:
$zipPath = "C:\Program Files\7-Zip\7z.exe"
[Array]$zipArgs = "-mx=9 a", "`"c:\BackupFolder\backup.zip`"", "`"c:\BackupFrom\backMeUp.txt`""
&$zipPath $zipArgs;
Run Code Online (Sandbox Code Playgroud)
但是,当我运行这个时,我得到:
7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
Error:
Incorrect command line
Run Code Online (Sandbox Code Playgroud)
把它写到屏幕我得到:
C:\Program Files\7-Zip\7z.exe -mx=9 a "c:\BackupFolder\backup.zip" "c:\BackupFrom\backMeUp.txt"
Run Code Online (Sandbox Code Playgroud)
所以我假设我需要在7z.exe的路径上放置引号,这给了我:
$zipPath = "C:\Program Files\7-Zip\7z.exe"
$zipPath = " `"$zipPath`" "
[Array]$zipArgs = "-mx=9 a", "`"c:\BackupFolder\backup.zip`"", "`"c:\BackupFrom\backMeUp.txt`""
&$zipPath $zipArgs;
Run Code Online (Sandbox Code Playgroud)
但后来我收到以下错误:
The term '"C:\Program Files\7-Zip\7z.exe"' is not recognized as the name of a cmdlet, function, script file
, or operable program. Check the spelling of the name, …Run Code Online (Sandbox Code Playgroud) 我想使用Delphi的7-Zip DLL但无法找到合适的文档或示例.有谁知道如何使用Delphi的7-Zip DLL?
根据此链接如何使用.NET创建7-Zip存档?,WOPR告诉我们如何使用7z SDK(http://www.7-zip.org/sdk.html )使用LMZA(7z压缩算法)压缩文件
using SevenZip.Compression.LZMA;
private static void CompressFileLZMA(string inFile, string outFile)
{
SevenZip.Compression.LZMA.Encoder coder = new SevenZip.Compression.LZMA.Encoder();
using (FileStream input = new FileStream(inFile, FileMode.Open))
{
using (FileStream output = new FileStream(outFile, FileMode.Create))
{
coder.Code(input, output, -1, -1, null);
output.Flush();
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是如何解压呢?
我尝试:
private static void DecompressFileLZMA(string inFile, string outFile)
{
SevenZip.Compression.LZMA.Decoder coder = new SevenZip.Compression.LZMA.Decoder();
using (FileStream input = new FileStream(inFile, FileMode.Open))
{
using (FileStream output = new FileStream(outFile, FileMode.Create))
{
coder.Code(input, output, input.Length, …Run Code Online (Sandbox Code Playgroud) 我发现7-zip很棒,我想在.net应用程序上使用它.我有一个10MB的文件(a.001),它需要:

2秒编码.
如果我能在c#上做同样的事情,那将会很好.我已经下载了http://www.7-zip.org/sdk.html LZMA SDK c#源代码.我基本上将CS目录复制到visual studio中的控制台应用程序中:

然后我编译和eveything编译顺利.所以在输出目录中我放置了a.00110MB大小的文件.关于我放置的源代码的主要方法:
[STAThread]
static int Main(string[] args)
{
// e stands for encode
args = "e a.001 output.7z".Split(' '); // added this line for debug
try
{
return Main2(args);
}
catch (Exception e)
{
Console.WriteLine("{0} Caught exception #1.", e);
// throw e;
return 1;
}
}
Run Code Online (Sandbox Code Playgroud)
当我执行控制台应用程序时,应用程序运行良好,我得到a.7z工作目录上的输出.问题是需要很长时间.执行大约需要15秒!我也试过/sf/answers/614314921/方法,这也需要很长时间.为什么它比实际程序慢10倍?
即使我设置只使用一个线程:

它仍然需要更少的时间(3秒对15):
可能是因为C#比汇编还是C慢?我注意到该算法执行了大量繁重的操作.例如,比较这两个代码块.他们都做同样的事情:
#include <time.h>
#include<stdio.h>
void main()
{
time_t now;
int i,j,k,x;
long …Run Code Online (Sandbox Code Playgroud) 我有一个程序(用C#编写)直接读取/写入数据(没有服务器的直接文件访问)到firebird数据库文件.为了更好的交换,我希望(un)在导入/导出时压缩它们,以便通过互联网进行更好的交换,而无需外部程序来(不)压缩它们.
我知道#ziplib支持Zip,GZip,Tar和BZip2.
你知道C#还有哪些免费的压缩库?是否有支持LZMA的.NET库,因此我可以读/写".7z"文件?
我想使用java代码将文件压缩为zip,rar和7z格式.我还想在指定的位置解压缩这些文件.谁能告诉我如何在java中使用7-zip压缩和解压缩文件?
如何提取大约900个7z文件,这些文件都位于同一个文件夹中(所有文件都只有一个文件)而不是一个一个地执行?
我正在使用Ubuntu 10.10.所有文件都位于/home/username/folder1/folder2.
7zip ×10
compression ×5
c# ×3
lzma ×3
command-line ×2
bash ×1
batch-file ×1
delphi ×1
extract ×1
java ×1
performance ×1
powershell ×1
r ×1
rar ×1
sdk ×1
ubuntu ×1
unzip ×1
zip ×1