private void btn_Backup_Click(object sender, EventArgs e)
{
List<DirectoryInfo> SourceDir = this.lbox_Sources.Items.Cast<DirectoryInfo>().ToList();
string TargetDir = this.tbox_Target.Text;
foreach (DirectoryInfo directory in SourceDir)
{
foreach (var file in directory.GetFiles())
if (this.checkbox_zipfiles.Checked == true)
{
System.IO.Compression.ZipFile.CreateFromDirectory(directory.FullName, TargetDir + @"\test.zip");
}
else
{
Microsoft.VisualBasic.FileIO.FileSystem.CopyDirectory(directory.FullName, TargetDir, true);
}
}
}
我正在创建一个备份应用程序,当我尝试压缩我需要备份的文件时,它说:“文件'C:\ Users \ Lada1208 \ Desktop \ test \ test.zip'已经存在。” 甚至认为该文件夹是空的,所以它试图创建test.zip文件两次由于某种原因。知道为什么吗?
答案 0 :(得分:0)
正如上午所指出的那样。在上面的注释中,对ZipFile.CreateFromDirectory()的调用将尝试为所有源目录创建一个具有相同位置和文件名的zip文件。
如果打算创建一个包含所有源目录中文件的存档,那么Zipfile.CreateFromDirectory()&#34;快捷方式&#34;方法不能使用。相反,您需要调用ZipFile.Open(),获取ZipArchive对象并使用其CreateEntry()方法单独添加每个文件。