In case this is a .net 4.5 application you can use the newly introduced ZipArchive class which offers a GetEntry() method:
Stream stream = new MemoryStream(file); // file as your byte[]
ZipArchive archive = new ZipArchive(stream )
ZipArchiveEntry entry = archive.GetEntry("ExistingFile.txt");
// Do your logic with the file you get from entry.Open()
entry.LastWriteTime = DateTimeOffset.UtcNow.LocalDateTime;
See ZipArchive Class and ZipArchive.GetEntry Method. There is a property on ZipArchive called Entries that contains all the entries in a readonly collection:
public ReadOnlyCollection<ZipArchiveEntry> Entries { get; }