/// <summary>
        /// Gets a child storage by its name or create a new one if not found.
        /// </summary>
        /// <param name="name">The name. May not be null.</param>
        /// <returns>An instance of the CompoundFileStorage class.</returns>
        public CompoundFileStorage GetOrAddChildStorage(string name)
        {
            if (name == null)
            {
                throw new ArgumentNullException(nameof(name));
            }

            var storage = GetChildStorage(name);

            if (storage != null)
            {
                return(storage);
            }

            storage = _file.AddStorage(this, name);
            _storages.Add(storage);
            return(storage);
        }