private void RefDirToTree(int pid, int deep, string path, List <FileEntity> list) { DirectoryInfo info = new DirectoryInfo(path); DirectoryInfo[] subdir = info.GetDirectories(); FileInfo[] subfile = info.GetFiles(); if (subdir == null || subdir.Length <= 0) { if (subfile == null || subfile.Length <= 0) { } else { list.AddRange(this.CreateList(pid, deep++, subfile)); } } else { foreach (DirectoryInfo item in subdir) { FileEntity entity = new FileEntity(pid, FileEntity.GetNextCount(), deep++, FileType.Directory, item.FullName); list.Add(entity); RefDirToTree(entity.GetId(), entity.GetDeep() + 1, item.FullName, entity.GetList()); } if (subfile == null || subfile.Length <= 0) { } else { list.AddRange(this.CreateList(pid, deep++, subfile)); } } }
private List <FileEntity> CreateList(int pid, int deep, FileInfo[] infos) { //if(infos==null||infos.Length<=0) // return; List <FileEntity> list = new List <FileEntity>(); foreach (FileInfo info in infos) { list.Add(new FileEntity(pid, FileEntity.GetNextCount(), deep, FileType.File, info.FullName)); } return(list); }
private bool GetFiles() { if (Directory.Exists(this.baseDir)) { this.FileList.Clear(); RefDirToTree(FileEntity.GetNextCount(), 0, this.baseDir, this.FileList); return(true); } else { return(false); } }