コード例 #1
0
 public void AppendChild(FolderModel model)
 {
     if (_Children == null)
     {
         _Children = new ObservableCollection <FolderModel>();
     }
     _Children.Add(model);
 }
コード例 #2
0
        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;
            }
        }