如何在c#中删除Zip中的重复值

时间:2016-05-31 13:15:12

标签: c#-4.0 dotnetzip

我有多个文件夹包含我要下载的相同文件。在第一次List<>循环中,我添加一个目录,如果任何目录有重复文件,我可以通过从foreach删除重复值来处理,但第二次执行using (var Zip = new ZipFile()) { foreach (var file in item) { if (file.isCheck == true) { string path = file.path; if (Directory.Exists(path)) { string[] folders = path.Split(new string[] { User.Identity.Name }, StringSplitOptions.None); if (!folders[1].Contains("/")) { folders[1] = Path.Combine("", folders[1]); } string lastFolderName = folders[1]; string security = db.Users.Where(e => e.Email == User.Identity.Name).Select(s => s.SecurityStamp).Single(); string ext = Path.GetExtension(path); if (path.Contains(security)) { Zip.AddDirectory(file.path); List<string> Generalfile = null; Generalfile = db.General.Where(p => p.Folder == lastFolderName || p.Folder.Contains(lastFolderName)).Select(p => p.PathInDb).ToList(); List<string> unique = Generalfile.Distinct().ToList(); foreach (var GF in unique) { Zip.AddFile(GF, "Files"); } } else { if (Directory.Exists(file.path)) Zip.AddDirectory(file.path); else Zip.AddFile(file.path, "Files"); } } else Zip.AddFile(path, "Files"); } } Zip.Save(outputstream); } outputstream.Position = 0; return File(outputstream, "applicatoin/zip", "Download.zip"); 循环,另一个将已添加到zip中的同一文件的文件夹添加到Zip中,我必须面对该zip包含重复值...

是否有任何方法可以从zip ...

中删除重复值
print [int(j) for i in somedata for j in list(str(i)) ]

1 个答案:

答案 0 :(得分:1)

使用DotNetZip库,您应该在添加文件之前使用ContainsEntry方法检查文件是否存在。