private static void write(DirectoryCollection dirs, StreamAccessor accessor) { StreamAccessor acSize = new StreamAccessor(accessor.WriteSubStream(4)); long pos0 = accessor.Position; foreach (ImageDirectory childdir in dirs) { accessor.Write(childdir); } acSize.Write(checked ((uint)(accessor.Position - pos0)), EncodingType.U4); acSize.Stream.Close(); }
private static DirectoryCollection read(StreamAccessor accessor) { DirectoryCollection ret = new DirectoryCollection(); uint size = accessor.ReadUInt32(EncodingType.U4); StreamAccessor acdirs = new StreamAccessor(accessor.ReadSubStream(size)); try{ while (acdirs.RestLength > 0) { ImageDirectory item = acdirs.Read <ImageDirectory>(); ret.Add(item); ret.paths[item.name] = item; } }catch (afh.File.StreamOverRunException) { }catch (System.Exception e) { afh.File.__dll__.log.WriteError(e, ".thm 内の画像ディレクトリを読込中にエラーが発生しました。"); } return(ret); }
/// <summary> /// ImageDirectory の初期化子です。 /// </summary> /// <param name="name">この Directory に付ける名前を指定します。</param> /// <param name="root">この ImageDirectory が所属する ThumbsFile を指定します。</param> public ImageDirectory(string name, ThumbsFile root) { this.root = root; this.name = name; this.dirs = new DirectoryCollection(root); }