我想使用ssis中的C#腳本解壓縮文件。 我最初使用IonicZip.dll來完成它,如下所示,它工作正常。使用獨立的EXE文件提取 - C#
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。
我7zip的代碼是
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)
{
}
選中此項:https://blogs.msdn.microsoft.com/microsoft_press/2010/02/03/jeffrey-richter-excerpt-2-from-clr -via-c-third-edition/ – Sidewinder94
以及FW上已有的.net資源如何? https://msdn.microsoft.com/en-us/library/system.io.compression.zipfile%28v=vs.110%29.aspx – Gusman
我在處理使用.NET Framework的zip文件時遇到了不好的內存( System.IO.Packaging),並完全忘了他們爲這些目的添加了一個新的命名空間:) – Sidewinder94