Exemplo n.º 1
0
        private async void LoadSubDirectoriesAsync()
        {
            if (!_isExpanded || !CanAccessDirectory())
            {
                return;
            }

            SubDirectories.Clear();
            var directoryInfos = _directoryInfo.GetDirectories();
            var directories    = new List <DirectoryViewModel>();

            foreach (var directoryInfo in directoryInfos)
            {
                await Task.Run(() => directories.Add(new DirectoryViewModel(directoryInfo.FullName)));

                if (directories.Count != DIRECTORIES_PACK_LENGTH)
                {
                    continue;
                }
                foreach (var directory in directories)
                {
                    SubDirectories.Add(directory);
                }
                directories.Clear();
            }
            foreach (var directory in directories)
            {
                SubDirectories.Add(directory);
            }
        }
Exemplo n.º 2
0
        private void OnAddFolder(object e)
        {
            string absoluteFolderPath = ProjectDefinitions.GetAbsolutePath(Path);
            string newFolderName      = "NewFolder";
            string newFolderPath      = System.IO.Path.Combine(absoluteFolderPath, newFolderName);

            if (Directory.Exists(newFolderPath))
            {
                bool bFoundName = false;
                for (int i = 0; i < 1000; i++)
                {
                    string folderName = newFolderName + i;
                    newFolderPath = System.IO.Path.Combine(absoluteFolderPath, folderName);
                    if (!Directory.Exists(newFolderPath))
                    {
                        bFoundName = true;
                        break;
                    }
                }

                if (!bFoundName)
                {
                    return;
                }
            }

            Directory.CreateDirectory(newFolderPath);
            SubDirectories.Add(new CDirectoryEntry(ProjectDefinitions.GetRelativePath(newFolderPath), m_viewModel, this));
        }
Exemplo n.º 3
0
        private void LoadSubdirectories()
        {
            foreach (var dir in Directory.GetDirectories(_rootPath))
            {
                if (_itemOptions.ContainsKey(Path.Combine(_rootPath, dir)) && _itemOptions[dir] == ItemOption.Compress)
                {
                    using (var ms = new MemoryStream())
                    {
                        var             zip = new FastZip();
                        ZipOutputStream outZip;
                        zip.CreateZip(ms, Path.Combine(_rootPath, dir), true, null, null, out outZip);

                        outZip.Finish();
                        // IMPORTANT! outZip must be closed after use here
                        Files.Add(VirtualFile.Create(ms.Length, new DirectoryInfo(dir).Name + ".zip", ms.ToArray(), true));
                        outZip.Close();
                        outZip.Dispose();
                    }
                }
                else
                {
                    SubDirectories.Add(Create(dir));
                }
            }
        }
Exemplo n.º 4
0
 private void LoadSubdirectories()
 {
     foreach (var dir in Directory.GetDirectories(_rootPath))
     {
         SubDirectories.Add(Create(dir));
     }
 }
Exemplo n.º 5
0
        private void AddItem(FolderViewModel folder)
        {
            folder.OnOpened  += OnItemOpened;
            folder.OnDeleted += OnItemDeleted;

            SubDirectories.Add(folder);
            AllItems.Add(folder);
        }
Exemplo n.º 6
0
        public void UpdateSubDirectories()
        {
            SubDirectories.Clear();
            string absolutePath = ProjectDefinitions.GetAbsolutePath(Path);

            var subDirectories = Directory.GetDirectories(absolutePath);

            foreach (string subDirectory in subDirectories)
            {
                SubDirectories.Add(new CDirectoryEntry(ProjectDefinitions.GetRelativePath(subDirectory), m_viewModel, this));
            }
        }
Exemplo n.º 7
0
 public void Add(NameSpaceNode node)
 {
     if (node is NameSpaceDirectory dir)
     {
         SubDirectories.Add(dir);
     }
     else if (node is NameSpaceFile file)
     {
         Files.Add(file);
     }
     else
     {
         throw new Exception("Invalid PackageNode");
     }
 }
Exemplo n.º 8
0
 public void LoadDirectories(IEnumerable <DirInfo> children)
 {
     if (!IsLoaded)
     {
         SubDirectories.Clear();
         foreach (DirInfo _child in children)
         {
             _child.Parent = this;
             //_child.SetIsChecked(_child.IsChecked2, this.IsChecked2, true, false);
             SubDirectories.Add(_child);
         }
         //SubDirectories = children.ToList<DirInfo>();
     }
     IsLoaded = true;
 }
        private void setUpBackgroundWorker()
        {
            bgWorker_loadSub = new BackgroundTaskManager <DispatcherNotifiedObservableCollection <DirectoryTreeItemViewModel> >(
                () =>
            {
                IsLoading = true;
                return(getDirectories());
            },
                (result) =>
            {
                List <DirectoryTreeItemViewModel> delList = new List <DirectoryTreeItemViewModel>(SubDirectories.ToArray());
                List <DirectoryTreeItemViewModel> addList = new List <DirectoryTreeItemViewModel>();

                foreach (DirectoryTreeItemViewModel model in result)
                {
                    if (delList.Contains(model))
                    {
                        delList.Remove(model);
                    }
                    else
                    {
                        addList.Add(model);
                    }
                }

                foreach (DirectoryTreeItemViewModel model in delList)
                {
                    SubDirectories.Remove(model);
                }

                foreach (DirectoryTreeItemViewModel model in addList)
                {
                    SubDirectories.Add(model);
                }

                HasSubDirectories = SubDirectories.Count > 0;


                IsLoading = false;
            });
        }
Exemplo n.º 10
0
        protected void ProcessSubKey(RegistryKeyIndexable subKey, bool isSubDirectory)
        {
            var nameKey           = (string)subKey.Default;
            var name              = string.Empty;
            var folder            = (string)subKey["Folder"];
            var developerActivity = (string)subKey["DeveloperActivity"];
            var templatesDir      = (string)subKey["TemplatesDir"];
            var sortPriority      = (int)((int?)subKey["SortPriority"] ?? 3000);
            var parentDirectory   = (VSTemplateDirectory)null;

            if (Package.SatelliteDll != null && nameKey.StartsWith("#"))
            {
                name = ResourceLoader.LoadStringFrom(Package.SatelliteDll.FullName, nameKey);
            }
            else
            {
                name = nameKey;
            }

            if (folder != null)
            {
                var guid = Guid.Parse(folder);

                LoadParentDirectory(guid, out parentDirectory);
            }

            var directory = (VSTemplateDirectory)null;

            if (isSubDirectory)
            {
                var subDirectory = new VSTemplateDirectory
                {
                    ParentDirectory   = parentDirectory,
                    Name              = name,
                    DeveloperActivity = developerActivity,
                    TemplatesDir      = templatesDir,
                    SortPriority      = sortPriority
                };

                directory = subDirectory;

                SubDirectories.Add(subDirectory);
            }
            else
            {
                this.Name              = name;
                this.ParentDirectory   = parentDirectory;
                this.DeveloperActivity = developerActivity;
                this.TemplatesDir      = templatesDir;
                this.SortPriority      = sortPriority;

                directory = this;
            }

            directory.AllTemplateDirs = new List <DirectoryInfo>();

            templatesDir = templatesDir.Expand();

            if (templatesDir.Contains(@"\.\") || templatesDir.Contains(@"\..\"))
            {
                var index    = templatesDir.IndexOf(@"\.\");
                var subIndex = index + @"\.\".Length;

                if (index == -1)
                {
                    index    = templatesDir.IndexOf(@"\..\");
                    subIndex = index + @"\..\".Length;
                }

                var templatesRoot = templatesDir.Substring(0, index);
                var subDirFind    = templatesDir.Substring(subIndex);
                Action <DirectoryInfo> recurseFind = null;

                recurseFind = (d) =>
                {
                    if (d.FullName.EndsWith(subDirFind))
                    {
                        directory.AllTemplateDirs.Add(d);
                    }

                    d.GetDirectories().ToList().ForEach(d2 => recurseFind(d2));
                };

                if (templatesRoot.Length > 0)
                {
                    var root = new DirectoryInfo(templatesRoot);

                    if (root.Exists)
                    {
                        recurseFind(root);
                    }
                }
            }
            else
            {
                if (templatesDir == @"\\")
                {
                }
                else
                {
                    directory.AllTemplateDirs.Add(new DirectoryInfo(templatesDir));
                }
            }
        }
Exemplo n.º 11
0
 private void AddSubDirectory(DirectoryEntity arg)
 {
     SubDirectories.Add(arg);
 }