public void AppendChild(FolderModel model) { if (_Children == null) { _Children = new ObservableCollection <FolderModel>(); } _Children.Add(model); }
private void ListItems(FolderModel model) { if (model.Loaded) { return; } if (model.Type == FolderType.Desktop) { return; } if (model.Type == FolderType.Computer) { foreach (var device in Environment.GetLogicalDrives()) { if (Directory.Exists(device)) { var child = new FolderModel(); child.Icon = "/Images/Disk.png"; child.Name = device; child.Path = device; child.Type = FolderType.Disk; model.AppendChild(child); } } return; } if (model.Type == FolderType.Disk || model.Type == FolderType.Folder) { //var info = new DirectoryInfo(model.Path); //if ((info.Attributes & FileAttributes.Directory) == FileAttributes.Directory) //{ // var ac = Directory.GetAccessControl(model.Path); // if (!ac.AreAccessRulesProtected) // { try { foreach (var item in Directory.GetDirectories(model.Path)) { var di = new DirectoryInfo(item); if ((di.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden) { continue; } var child = new FolderModel(); child.Icon = "/Images/Folder.png"; child.Name = System.IO.Path.GetFileName(item); child.Path = item; child.Type = FolderType.Folder; model.AppendChild(child); } } catch (Exception) { } //} //} return; } }