public ICollection <IEntry> GetItems() { using (ZipFile temp = new ZipFile(FullName)) { List <ZipEntry> entries = temp.Entries.ToList(); List <IEntry> directoriesInsideZip = new List <IEntry>(); List <IEntry> filesAndZipsInsideZip = new List <IEntry>(); foreach (var v in entries) { if (!(v.IsDirectory)) { if (v.FileName.Contains("/")) { var pathParts = v.FileName.Split('/'); directoriesInsideZip.Add(new MyDirectory(temp.Name + @"\" + pathParts[0])); } else if (MyFile.GetExtension(v.FileName) == ".zip") { filesAndZipsInsideZip.Add(new MyZip(temp.Name + @"\" + v.FileName)); } else { filesAndZipsInsideZip.Add(new MyFile(temp.Name + @"\" + v.FileName)); } } } return(directoriesInsideZip .Union(filesAndZipsInsideZip) .Distinct(new EntriesComparer <IEntry>()) .ToList()); } }
public ICollection <IEntry> GetAllItems() { using (ZipFile temp = new ZipFile(FullName)) { List <ZipEntry> entries = temp.Entries.ToList(); List <IEntry> directoriesInsideZip = new List <IEntry>(); List <IEntry> filesAndZipsInsideZip = new List <IEntry>(); foreach (var v in entries) { if (!(v.IsDirectory)) { if (MyFile.GetExtension(v.FileName) == ".zip") { filesAndZipsInsideZip.Add(new MyZip(temp.Name + @"\" + v.FileName)); } else { filesAndZipsInsideZip.Add(new MyFile(temp.Name + @"\" + v.FileName)); } } } return(directoriesInsideZip.Union(filesAndZipsInsideZip).ToList()); } }
public void OnFileCopy(object sender, MainFormEventArgs e) { copySource = FileFactory.CreateEntry(e.CurrentDir + @"\" + e.Item); copiedEntryName = "CopyOf" + MyFile.GetFileNameWithoutExtension(FileFactory.CreateEntry(e.CurrentDir + @"\" + e.Item).Name) + MyFile.GetExtension(FileFactory.CreateEntry(e.CurrentDir + @"\" + e.Item).Name); /*Copied = e.CurrentDir + e.Item; * CopyName = "CopyOf" + e.Item; * OpenedDirectory(e.CurrentDir);*/ }
public MyZip(string name) { if (MyFile.GetExtension(name) != ".zip") { throw new ArgumentException(); } else { fullName = name; } }
public static IEntry CreateEntry(string path) { if (path == String.Empty) { throw new MyException("Пустая строка", new ArgumentException()); } if (path.EndsWith(".zip")) { return(new MyZip(path)); } if (MyFile.GetExtension(path) == String.Empty) { return(new MyDirectory(path)); } return(new MyFile(path)); }