예제 #1
0
        /// <summary>
        /// サブ ディレクトリの StorageDirectory を取得します。
        /// </summary>
        /// <param name="name">サブ ディレクトリ名。</param>
        /// <returns>サブ ディレクトリの StorageDirectory。</returns>
        public StorageDirectory GetDirectory(string name)
        {
            if (!DirectoryExists(name))
            {
                throw new InvalidOperationException(string.Format("The directory '{0}' does not exists.", name));
            }

            var path      = ResolveChildPath(name);
            var directory = new StorageDirectory(container, name, path);

            directory.LoadIndexFile();

            return(directory);
        }
예제 #2
0
        /// <summary>
        /// StorageContainer のルート ディレクトリの StorageDirectory を取得します。
        /// このメソッドは、ルート ディレクトリに StorageDirectoryIndex が存在しない場合、
        /// サブ ディレクトリおよびファイルが空の StorageDirectoryIndex を生成して保存します。
        /// </summary>
        /// <param name="container">StorageContainer。</param>
        /// <returns>ルート ディレクトリの StorageDirectory。</returns>
        internal static StorageDirectory GetRootDirectory(StorageContainer container)
        {
            if (container == null)
            {
                throw new ArgumentNullException("container");
            }

            // ルート ディレクトリのための StorageDirectory を初期化します。
            var directory = new StorageDirectory(container, null, null);

            if (container.FileExists(indexFileName))
            {
                directory.LoadIndexFile();
            }
            else
            {
                directory.CreateIndexFile();
            }
            return(directory);
        }
예제 #3
0
        /// <summary>
        /// サブ ディレクトリの StorageDirectory を取得します。
        /// </summary>
        /// <param name="name">サブ ディレクトリ名。</param>
        /// <returns>サブ ディレクトリの StorageDirectory。</returns>
        public StorageDirectory GetDirectory(string name)
        {
            if (!DirectoryExists(name))
                throw new InvalidOperationException(string.Format("The directory '{0}' does not exists.", name));

            var path = ResolveChildPath(name);
            var directory = new StorageDirectory(container, name, path);
            directory.LoadIndexFile();

            return directory;
        }
예제 #4
0
        /// <summary>
        /// StorageContainer のルート ディレクトリの StorageDirectory を取得します。
        /// このメソッドは、ルート ディレクトリに StorageDirectoryIndex が存在しない場合、
        /// サブ ディレクトリおよびファイルが空の StorageDirectoryIndex を生成して保存します。
        /// </summary>
        /// <param name="container">StorageContainer。</param>
        /// <returns>ルート ディレクトリの StorageDirectory。</returns>
        internal static StorageDirectory GetRootDirectory(StorageContainer container)
        {
            if (container == null) throw new ArgumentNullException("container");

            // ルート ディレクトリのための StorageDirectory を初期化します。
            var directory = new StorageDirectory(container, null, null);
            if (container.FileExists(indexFileName))
            {
                directory.LoadIndexFile();
            }
            else
            {
                directory.CreateIndexFile();
            }
            return directory;
        }