【发布时间】:2019-04-12 11:21:18
【问题描述】:
我意识到这个问题有多种变体,但在查看它们时,我没有看到我的确切用例,而且我的结果有问题。
我正在做的是将一些 BZ2 压缩文件通过 FTP 传输到我的硬盘驱动器的文件夹中。然后我解压缩每一个以供审查。最后,我想将文件通过电子邮件发送给某人,但我想先将它们放入 Zip 存档中以使其更容易。下面是代码。
private void buttonCreateZip_Click(object sender, EventArgs e)
{
Directory.CreateDirectory(@"C:\temp\logfiles\" + comboBoxDirectory.SelectedItem.ToString() + "\\zip\\");
string startPath = @"C:\temp\logfiles\" + comboBoxDirectory.SelectedItem.ToString();
string zipPath = @"C:\temp\logfiles\" + comboBoxDirectory.SelectedItem.ToString() + "\\zip\\" + comboBoxDirectory.SelectedItem.ToString() + ".zip";
File.SetAttributes(@"C:\temp\logfiles\" + comboBoxDirectory.SelectedItem.ToString() + "\\zip\\", FileAttributes.Normal);
File.SetAttributes(@"C:\temp\logfiles\" + comboBoxDirectory.SelectedItem.ToString() + "\\", FileAttributes.Normal);
ZipFile.CreateFromDirectory(startPath, zipPath);
}
我不是单独组合文件,而是使用一个 API 来获取目标目录中的所有文件并将它们压缩到存档中。
问题在于,即使我得到了例外
进程无法访问文件“C:...”,因为它正被另一个进程使用”
它无论如何都会在我为此目的创建的 zip 子目录中创建 ZIP 存档。它几乎看起来像是在库函数CreateFromDirectory 中,但这是我通过引用访问的标准库的一部分:
System.IO.Compression.FileSystem。
【问题讨论】:
标签: c# .net winforms io zipfile