// private string DictionaryKeyForEntry(ZipEntry ze1) // { // var filename = SharedUtilities.NormalizePathForUseInZipFile(ze1.FileName); // return filename; // } /// <summary> /// Creates a directory in the zip archive. /// </summary> /// /// <remarks> /// /// <para> /// Use this when you want to create a directory in the archive but there is /// no corresponding filesystem representation for that directory. /// </para> /// /// <para> /// You will probably not need to do this in your code. One of the only times /// you will want to do this is if you want an empty directory in the zip /// archive. The reason: if you add a file to a zip archive that is stored /// within a multi-level directory, all of the directory tree is implicitly /// created in the zip archive. /// </para> /// /// </remarks> /// /// <param name="directoryNameInArchive"> /// The name of the directory to create in the archive. /// </param> /// <returns>The <c>ZipEntry</c> added.</returns> public ZipEntry AddDirectoryByName(string directoryNameInArchive) { // workitem 9073 ZipEntry dir = ZipEntry.CreateFromNothing(directoryNameInArchive); dir._container = new ZipContainer(this); dir.MarkAsDirectory(); dir.AlternateEncoding = this.AlternateEncoding; // workitem 8984 dir.AlternateEncodingUsage = this.AlternateEncodingUsage; dir.SetEntryTimes(DateTime.Now, DateTime.Now, DateTime.Now); dir.EmitTimesInWindowsFormatWhenSaving = _emitNtfsTimes; dir.EmitTimesInUnixFormatWhenSaving = _emitUnixTimes; dir._Source = ZipEntrySource.Stream; //string key = DictionaryKeyForEntry(dir); InternalAddEntry(dir.FileName, dir); AfterAddEntry(dir); return(dir); }