今天遇到一个项目,需要解压.tar.Z文件,这个文件是第三方公司提供,也不知道什么程序生成的.正常电脑中,右键可以打开,但无法修改和编辑,删除等,只能解压,因为要实现程序自动化,就必须要用.net c#程序来解压.先来看下打开后的效果图
然后开始了我的解压之路,用了SharpCompress,ZipFile 等3种以上的解压类库,依然无法正常解压.总计浪费了2天的时间,用类库的方法也没有搞定.
最后无奈,只能研究tar的解压模式,发现tar解压,可以用命名行的方式搞定.
解压
tar -xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2 //解压 tar.bz2
tar -xZvf file.tar.Z //解压tar.Z
unrar e file.rar //解压rar
unzip file.zip //解压zip
于是,重新写了一段.net执行cmd命令代码,成功解压.tar.Z文件.
public static bool FillFileTar(string filename, string filetxt)
{
Process process = CreateProcess();
process.StandardInput.AutoFlush = true;
process.StandardInput.WriteLine("tar -zxvf " + filename + " -C " + filetxt);
Thread.Sleep(10000);//大文件,调整这里的沉睡处理时间
//string output = process.StandardOutput.ReadToEnd();
//string error = process.StandardError.ReadToEnd();
CloseProcess(process);
//return output.Contains("正在更新") || error.Contains("OK");
return true;
}