private List <V8File> ReadToC(V8Document tocDocument) { using (var reader = tocDocument.Open()) { var files = FileAddress.ReadToC(reader) .Select(addr => V8File.FromStream(this, addr)); return(files.ToList()); } }
/// <summary> /// Создает файл в контейнере с указанным именем. /// </summary> /// <param name="name">Имя файла, который необходимо создать в контейнере.</param> /// <returns>Созданный файл.</returns> public V8File CreateFile(string name) { ThrowIfDisposed(); if (name == null) { throw new ArgumentNullException(nameof(name)); } if (string.IsNullOrEmpty(name)) { throw new ArgumentException($"{nameof(name)} не может быть пустым.", nameof(name)); } if (_mode == V8ContainerMode.Read) { throw new InvalidOperationException("Контейнер открыт в режиме чтения. Создание файлов невозможно."); } if (_filesDictionary.ContainsKey(name)) { throw new InvalidOperationException("Файл с таким именем уже существует."); } if (_baseStream.Length >= MaxLength) { throw new InvalidOperationException("Контейнер достиг максимального размера, создание новых файлов невозможно."); } var file = V8File.Create(this, name); file.Address.Write(_tocStream); _files.Add(file); _filesDictionary.Add(name, file); return(file); }