public IsoDirectory(IsoDirectory parent, TreeNode directory, UInt32 level, string childNumber) : base(directory, false, childNumber) { m_parent = parent; this.Initialize(directory, level, null); }
// For ROOT !! public IsoDirectory(TreeNode directory, UInt32 level, string childNumber, ProgressDelegate Progress) : base(directory, true, childNumber) { m_parent = this; this.Initialize(directory, level, Progress); }
private void Initialize(DirectoryInfo directory, uint level, ProgressDelegate Progress) { FileSystemInfo[] children = directory.GetFileSystemInfos(); if (children != null) { Progress?.Invoke(this, new ProgressEventArgs(0, children.Length)); int childNumberLength = children.Length.ToString().Length; for (int i = 0; i < children.Length; i++) { IsoFolderElement child; string childNumber = string.Format("{0:D" + childNumberLength.ToString() + "}", i); if (children[i].GetType() == typeof(DirectoryInfo)) { child = new IsoDirectory(this, (DirectoryInfo)children[i], level + 1, childNumber); } else { child = new IsoFile((FileInfo)children[i], childNumber); } Children.Add(child); Progress?.Invoke(this, new ProgressEventArgs(i)); } } Children.Sort(); CalculateSize(); }
public IsoDirectory(IsoDirectory parent, DirectoryInfo directory, uint level, string childNumber) : base(directory, false, childNumber) { Parent = parent; Initialize(directory, level, null); }
public static void SetExtent2(ArrayList stack, int index, UInt32 currentExtent) { if (index >= stack.Count) { return; } IsoDirectory currentDir = (IsoDirectory)stack[index]; currentDir.Extent2 = currentExtent; UInt32 newCurrentExtent = currentExtent + currentDir.Size2 / IsoAlgorithm.SectorSize; foreach (IsoFolderElement child in currentDir.Children) { if (child.IsDirectory) { stack.Add(child); } } SetExtent2(stack, index + 1, newCurrentExtent); }
private void Initialize(TreeNode directory, UInt32 level, ProgressDelegate Progress) { m_level = level; TreeNode[] children = directory.GetAllChildren(); if (children != null) { if (Progress != null) { Progress(this, new ProgressEventArgs(0, children.Length)); } int childNumberLength = children.Length.ToString().Length; for (int i = 0; i < children.Length; i++) { IsoFolderElement child; string childNumber = String.Format("{0:D" + childNumberLength.ToString() + "}", i); if (children[i].IsDirectory) { child = new IsoDirectory(this, children[i], level + 1, childNumber); } else { child = new IsoFile(children[i], childNumber); } m_children.Add(child); if (Progress != null) { Progress(this, new ProgressEventArgs(i)); } } m_children.Sort(); } this.CalculateSize(); }