Exemple #1
0
 public void Sort(DiskStructure diskStructure)
 {
     rootDirectory.Sort(diskStructure);
 }
Exemple #2
0
 public void Sort(DiskStructure diskStructure)
 {
     fatImplementation.Sort(diskStructure);
 }
Exemple #3
0
        public void Sort(DiskStructure diskStructure)
        {
            if (children == null)
            return;

              foreach (var child in children)
              {
            if (child.GetType() == typeof(Directory))
              ((Directory)child).Sort(diskStructure);
              }

              children.Sort(delegate(FileBase x, FileBase y)
              {
            int compare = 0;
            if (HandleDotAndDotDot(x, y, out compare))
              return compare;

            if ((x.GetType() == typeof(Directory)) &&
              (y.GetType() == typeof(File)))
              return 1; // Directory are after files

            if ((y.GetType() == typeof(Directory)) &&
              (x.GetType() == typeof(File)))
              return -1; // Directory are after files

            DiskStructure.Directory parent = diskStructure.Root.FindDirectory(x.path);
            Debug.Assert(parent == diskStructure.Root.FindDirectory(y.path));

            int xindex = (x.GetType() == typeof(Directory)) ? parent.GetIndexOfDirectory(x.name) : parent.GetIndexOfFile(x.name);
            int yindex = (y.GetType() == typeof(Directory)) ? parent.GetIndexOfDirectory(y.name) : parent.GetIndexOfFile(y.name);

            if (yindex < 0 || xindex < 0)
              throw new ArgumentOutOfRangeException();

            return (xindex - yindex);
              });
        }