예제 #1
0
 internal DirectoryContainer(SubDirectory owner) : base(owner)
 {
     if (null != owner.Container)
     {
         throw new InvalidOperationException();
     }
 }
예제 #2
0
        public FileNode AddFile(SubDirectory parent, string name, long length)
        {
            FileNode    result     = new FileNode();
            SingleFile  singleFile = SizeMappings.GetComponentByValue <SingleFile>(length);
            FilesBySize filesBySize;

            if (null != singleFile)
            {
                SizeMappings.Remove(singleFile);
                filesBySize = new FilesBySize();
                filesBySize.AddFile(singleFile);
                filesBySize.AddFile(result.Grouped);
            }
            else
            {
                filesBySize = SizeMappings.GetComponentByValue <FilesBySize>(length);
                if (null != filesBySize)
                {
                    filesBySize.AddFile(result.Grouped);
                }
                else
                {
                    SizeMappings.AddValue(result.Grouped, length);
                }
            }
            parent.AddFile(result.StructureNode, name);
            return(result);
        }