public void LoadDrives() { txtPath.Text = ""; lvExplorer.Groups.Clear(); lvExplorer.Items.Clear(); ListViewGroup grpDrives = new ListViewGroup(groups[0].HeaderName); grpDrives.Tag = groups[0]; lvExplorer.Groups.Add(grpDrives); ManagementObjectSearcher mos = new ManagementObjectSearcher(); mos.Query = new ObjectQuery("SELECT * From Win32_LogicalDisk"); foreach (ManagementObject mo in mos.Get()) { string type = mo["DriveType"].ToString(); string name = mo["DeviceId"].ToString() + @"\"; DocExpListViewItem lviDrive = new DocExpListViewItem(name, grpDrives); lviDrive.FileType = fileTypes[0]; lviDrive.Path = name; if (type == "3") { lviDrive.ImageKey = "Drive"; } else if (type == "4") { lviDrive.ImageKey = "NetworkDrive"; } else if (type == "5") { lviDrive.ImageKey = "CDDVD"; } else { } lvExplorer.Items.Add(lviDrive); } }
public void LoadSubFilesAndFolders(string path) { fsw.Path = path; txtPath.Text = path; lvExplorer.Groups.Clear(); lvExplorer.Items.Clear(); ListViewGroup grpActions = new ListViewGroup(" "); grpActions.Tag = groups[2]; lvExplorer.Groups.Add(grpActions); ListViewGroup grpDirectories = new ListViewGroup(groups[1].HeaderName); grpDirectories.Tag = groups[1]; lvExplorer.Groups.Add(grpDirectories); DocExpListViewItem lviUp = new DocExpListViewItem("Up", grpActions); lviUp.ImageKey = "FolderUp"; lviUp.FileType = fileTypes[2]; lviUp.Path = path; lvExplorer.Items.Add(lviUp); foreach (string directory in Directory.GetDirectories(path)) { DocExpListViewItem lviDirectory = new DocExpListViewItem(directory.Substring(directory.LastIndexOf(@"\") + 1), grpDirectories); lviDirectory.Path = directory; lviDirectory.FileType = fileTypes[1]; lviDirectory.ImageKey = "Folder"; lvExplorer.Items.Add(lviDirectory); } List <string> filesLoaded = new List <string>(); foreach (FileTypeGroup ftg in (from ftg in groups where ftg.ShowInExplorer == true select ftg)) { List <DocExpListViewItem> items = new List <DocExpListViewItem>(); foreach (FileType ft in (from ft in fileTypes where ft.Group == ftg select ft)) { ListViewGroup grpFiles = null; if (lvExplorer.Groups[ftg.HeaderName] == null) { grpFiles = new ListViewGroup(ftg.HeaderName, ftg.HeaderName); grpFiles.Tag = ftg; lvExplorer.Groups.Add(grpFiles); } else { grpFiles = lvExplorer.Groups[ftg.HeaderName]; } foreach (string file in Directory.GetFiles(path, ft.SearchCriteria, SearchOption.TopDirectoryOnly)) { if (!filesLoaded.Contains(file)) { DocExpListViewItem lviFile = new DocExpListViewItem(file.Substring(file.LastIndexOf(@"\") + 1), grpFiles); lviFile.Path = file; lviFile.FileType = ft; if (ilExplorer.Images.Keys.IndexOf(ft.SearchCriteria.Replace("*.", "")) > -1) { lviFile.ImageKey = ft.SearchCriteria.Replace("*.", ""); } else { lviFile.ImageKey = "*"; } items.Add(lviFile); filesLoaded.Add(file); } } } foreach (DocExpListViewItem itm in (from i in items orderby i.Text ascending select i)) { lvExplorer.Items.Add(itm); } } }