private void ScanRep(ClassDirectory root) { //Listing files try { var lFiles = Directory.EnumerateFiles(root.Name); foreach (string f in lFiles) { root.AddFile(f, new FileInfo(f).Length); } } catch (Exception e) { _lstErr.Add(root.Name + "\r\n" + e.Message + "\r\n"); } //Listing directories try { var lDir = Directory.EnumerateDirectories(root.Name); foreach (string d in lDir) { ScanRep(root.AddDirectory(d)); //And we step through } } catch (Exception e) { _lstErr.Add(root.Name + "\r\n" + e.Message + "\r\n"); } }
public ClassDirectory AddDirectory(string name) { ClassDirectory newItem = new ClassDirectory(name, this); _content.Add(newItem); return(newItem); }
public ClassFile(double size, string name, ClassDirectory parent) { Type = "File"; Name = name; Parent = parent; Size = size; DeleteText = "Do you want to delete the file: \r\n " + Name; }
private ClassDirectory(string name, ClassDirectory parent) { Type = "Dir."; Size = 0; Name = name; Parent = parent; _content = new List <ClassFsItem>(); DeleteText = "Do you want to delete the directory: \r\n " + Name + "\r\n and all files and directories in this directory."; }
public void Scan(string path, MainWindow owindow) { _root = new ClassDirectory(path); _lstErr.Clear(); //search ScanRep(_root); //show Show(owindow); }
private void ShowRep(ClassDirectory root, MainWindow owindow) { foreach (ClassFsItem itm in root) { owindow.AddLine(itm); if (itm.Type == "Dir.") { ShowRep((ClassDirectory)itm, owindow); } } }
private void DeleteRepDuplicate(ClassDirectory rep) { foreach (ClassFsItem item in rep) { if (item.Type == "File") { _duplicateFile[((ClassFile)item).Md5()].Remove((ClassFile)item); File.Delete(item.Name); } else { DeleteRepDuplicate((ClassDirectory)item); Directory.Delete(item.Name, false); } } }
public ClassFile(double size, string name, ClassDirectory parent, string md5) : this(size, name, parent) { _md5 = md5; }