正在提取.cab文件
本文关键字:文件 cab 提取 | 更新日期: 2023-09-27 18:21:29
我想提取c#.net 中特定文件夹中的所有.cab文件
static int ExtractCabFiles()
{
try
{
Console.WriteLine("Extracting Cab files");
string strCommand = @"extrac32.exe";
var strArrCabDetails = new string[3];
strArrCabDetails[0] = ConfigurationManager.AppSettings["Cab_Files_Path"];
strArrCabDetails[1] = "/L";
strArrCabDetails[2] = ConfigurationManager.AppSettings["Event_Files_Folder_Path"];
WriteLog("Cab files path : " + ConfigurationManager.AppSettings["Cab_Files_Path"] + "", false, false);
const string strArgsSeparator = " ";
string strArgs = string.Join(strArgsSeparator, strArrCabDetails);
Process process = new Process();
process.StartInfo.FileName = strCommand;
process.StartInfo.Arguments = strArgs;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.RedirectStandardOutput = true;
WriteLog("Extract Command : " + strCommand + " " + strArgs + "", false, false);
process.Start();
//string strError = process.StandardError.ReadLine();
iExitCode = process.ExitCode;
}
catch (Exception ex)
{
}
}
这段代码将提取一个.cab文件,但我想从文件夹中提取多个.cab文件。
这是一个老问题,但我遇到了同样的问题
要提取多个文件,只需使用通配符和展开命令,例如
展开"C:''InputFolder*.CAB"-I-F:*C:''OutputFolder
如果要使用原始名称的文件,则需要-I。否则,它将保留原始CAB名称(至少当cat文件只有一个文件时会发生这种情况)。我的意思是,如果文件名是file。CAB输出的名称将是file。CAB而不是file.txt,因为CAB文件只有一个名为file.txt的文件。如果您还想保留目录结构,请将-I更改为-R