Example #1
0
        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);
        }
Example #2
0
        private void AddEntry(ArchiveEntryBase entry)
        {
            Exceptions.CheckArgumentNull(entry, "entry");

            entry.ParentDirectory = this;
            Childs.Add(entry.Name, entry);
        }
Example #3
0
        public void AddEntry(ArchiveEntryBase entry)
        {
            if (entry.Type == ArchiveEntryType.Directory)
            {
                throw new ArgumentException("entry");
            }

            entry.ParentArchive = this;
            Childs.Add(entry);
        }