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); } }
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)); }
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)); } } }
private void LoadSubdirectories() { foreach (var dir in Directory.GetDirectories(_rootPath)) { SubDirectories.Add(Create(dir)); } }
private void AddItem(FolderViewModel folder) { folder.OnOpened += OnItemOpened; folder.OnDeleted += OnItemDeleted; SubDirectories.Add(folder); AllItems.Add(folder); }
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)); } }
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"); } }
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; }); }
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)); } } }
private void AddSubDirectory(DirectoryEntity arg) { SubDirectories.Add(arg); }