public void AddEntry(string path, ArchiveEntryBase entry) { Exceptions.CheckArgumentNullOrEmprty(path, "path"); Exceptions.CheckArgumentNull(entry, "entry"); if (ParentDirectory != null) { throw new Exception("Узел не является корневым."); } string[] partNames = path.ToLowerInvariant().Split(Path.DirectorySeparatorChar); if (partNames.Length < 2) { throw Exceptions.CreateException("Заданный путь не содержит корневого узла или имени файла: '{1}'", Name, path); } if (partNames.First() != Name) { throw Exceptions.CreateException("Узел '{0}' не явяется корневым для заданного пути: '{1}'", Name, path); } ArchiveDirectoryEntry dirNode = this; for (int i = 1; i < partNames.Length - 1; i++) { dirNode = dirNode.EnsureDirectoryExists(partNames[i]); } dirNode.AddEntry(entry); }
private void AddEntry(ArchiveEntryBase entry) { Exceptions.CheckArgumentNull(entry, "entry"); entry.ParentDirectory = this; Childs.Add(entry.Name, entry); }
public void AddEntry(ArchiveEntryBase entry) { if (entry.Type == ArchiveEntryType.Directory) { throw new ArgumentException("entry"); } entry.ParentArchive = this; Childs.Add(entry); }