【发布时间】:2018-07-14 12:03:38
【问题描述】:
我有许多大文件需要传输。当我将所有内容压缩成一个大文件时,我的 TX 程序一直挂起。所以我想压缩单个文件。
namespace WindowsFormsApplication1
{
public partial class UncompressFolder : Form
{
public UncompressFolder()
{
InitializeComponent();
}
void ProcessFiles(string path, string choice="U")
{
string[] files;
files = Directory.GetFiles(path);
foreach (string file in files)
{
// Process each file
if (!file.ToUpper().Contains("zip"))
{
FileInfo fi = new FileInfo(file);
string startPath = fi.DirectoryName;
string zipPath = fi.DirectoryName + @"\zipped\";
string zipFile = zipPath + fi.Name+".zip";
string extractPath = startPath + @"\unzipped";
if (!Directory.Exists(extractPath))
{
Directory.CreateDirectory(extractPath);
}
if (choice == "Z")
{
// zip it --> always give me the "File's In Use Error"
// option I had tried but did not work --> Directory.CreateDirectory(zipPath);
System.IO.Compression.ZipFile.CreateFromDirectory(startPath, zipFile);
}
else
{// unzip -- works fine
System.IO.Compression.ZipFile.ExtractToDirectory(file, extractPath);
}
}
}
}
private void button1_Click(object sender, EventArgs e)
{
this.folderBrowserDialog1.ShowDialog();
ProcessFiles(folderBrowserDialog1.SelectedPath, "U");
}
private void button2_Click(object sender, EventArgs e)
{
this.folderBrowserDialog1.ShowDialog();
ProcessFiles(folderBrowserDialog1.SelectedPath,"Z");
}
}
}
我看到有关人们压缩到他们现有文件的帖子,但我认为这不是我正在做的事情。如果有人能帮助我解决这个问题,我会非常高兴和感激。
【问题讨论】: