【发布时间】:2016-09-09 20:51:28
【问题描述】:
我正在尝试使用 ssis 中的 C# 脚本解压缩文件。 我最初使用 IonicZip.dll 如下所示,它工作正常。
private string ExtractFileToDirectory(string strSourceDirectory, string strDestinationDirectory, string strFileName)
{
string extractFileName = String.Empty;
try
{
ZipFile zip = ZipFile.Read(Path.Combine(strSourceDirectory ,strFileName));
Directory.CreateDirectory(strDestinationDirectory);
foreach (ZipEntry e in zip)
{
e.Extract(strDestinationDirectory, ExtractExistingFileAction.OverwriteSilently);
extractFileName = e.FileName;
}
zip.Dispose();
return extractFileName;
}
catch
{
//
}
}
但是,我没有在服务器中部署 dll 的权限。所以我切换到 7Za.exe(独立 exe)。中途我意识到它只支持 7z、cab、zip、gzip、bzip2、Z 和 tar 格式。我需要压缩的文件没有任何扩展名。
有没有办法用独立的 exe 提取文件?我在 ssis 中使用 C# 4.0。
我的 7 邮政编码是
string str7ZipPath = @"C:\Tools Use\7zip";
string str7ZipArgs = "a -tzip "+ @"""C:\Source\FileA"""+ @" ""C:\Zip\*.*""";
ProcessStartInfo psi = new ProcessStartInfo();
psi.CreateNoWindow = false;
psi.UseShellExecute = false;
psi.FileName = str7ZipPath + "\\7za.exe";
psi.WindowStyle = ProcessWindowStyle.Normal;
psi.Arguments = str7ZipArgs;
try
{
using (Process proc = Process.Start(psi))
{
proc.WaitForExit();
}
}
catch (Exception ex)
{
}
【问题讨论】:
-
那么 FW 上已经可用的 .net 资源呢? msdn.microsoft.com/en-us/library/…
-
我在使用 NET Framework (System.IO.Packaging) 处理 zip 文件时记性不好,完全忘记了他们为此目的添加了一个新的命名空间 :)
-
@Gusman 。不幸的是..它仅从 4.5 开始可用
标签: c# .net c#-4.0 zip extract