I am creating zip using dotnetzip library.
But I don't know how to check if a file exists in the zip. If the file exists then I will update the file with path.
public void makezip(string flname)
{
string fln =flname;
string curFile = @"d:\crs.zip";
if (File.Exists(curFile))
{
ZipFile zipfl = ZipFile.Read(@"D:\crs.zip");
var result = zipfl.Any(entry => entry.FileName.EndsWith(@fln));
if (result == true) {
zipfl.UpdateFile(@fln);
}else{
zipfl.AddFile(@fln);
}
zipfl.Save(@"d:\crs.zip");
}
else
{
try
{
ZipFile zipfl = new ZipFile();
var result = zipfl.Any(entry => entry.FileName.EndsWith(@fln));
if (result == true)
{
zipfl.AddFile(@fln);
}
zipfl.Save(@"d:\crs.zip");
}catch {
MessageBox.Show("Invalid Zip File");
}}}
Just use LINQ
Any
, assume you have input zip fileinput.zip
, to check whetherinput.zip
containsinput.txt
:(This is not dotnetzip but will get the job done.)
Requires:
using System.IO.Compression;
Assembly: System.IO.Compression.FileSystem.dll
Example call:
var exists = ZipHelper.ZipHasFile(@"zipTest.txt", @"C:\Users\...\Desktop\zipTest.zip");