Пример #1
0
        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();
        }
Пример #2
0
        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);
        }
Пример #3
0
 /// <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);
 }