/// <summary> /// サブ ディレクトリを作成します。 /// 指定の名前のサブ ディレクトリが既に存在する場合は例外が発生します。 /// </summary> /// <param name="name">サブ ディレクトリ名。</param> /// <returns>サブ ディレクトリの StorageDirectory。</returns> public StorageDirectory CreateDirectory(string name) { if (DirectoryExists(name)) { throw new InvalidOperationException(string.Format("The directory '{0}' already exists.", name)); } // サブ ディレクトリを作成します。 var path = ResolveChildPath(name); container.CreateDirectory(path); // サブ ディレクトリの StorageDirectory を作成します。 var directory = new StorageDirectory(container, name, path); directory.CreateIndexFile(); // Index にサブ ディレクトリの情報を追加して保存します。 index.DirectoryNames.Add(name); SaveIndexFile(); // todo IndexChanged(this, EventArgs.Empty); return(directory); }
/// <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); }
/// <summary> /// サブ ディレクトリを作成します。 /// 指定の名前のサブ ディレクトリが既に存在する場合は例外が発生します。 /// </summary> /// <param name="name">サブ ディレクトリ名。</param> /// <returns>サブ ディレクトリの StorageDirectory。</returns> public StorageDirectory CreateDirectory(string name) { if (DirectoryExists(name)) throw new InvalidOperationException(string.Format("The directory '{0}' already exists.", name)); // サブ ディレクトリを作成します。 var path = ResolveChildPath(name); container.CreateDirectory(path); // サブ ディレクトリの StorageDirectory を作成します。 var directory = new StorageDirectory(container, name, path); directory.CreateIndexFile(); // Index にサブ ディレクトリの情報を追加して保存します。 index.DirectoryNames.Add(name); SaveIndexFile(); // todo IndexChanged(this, EventArgs.Empty); return directory; }
/// <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; }