private void TraverseLoadMovieList(ref DirectoryOrFile _df, ref List <DirectoryOrFile> _list) { if (_df.Type() == DirectoryOrFile.DOF_Type.FILE) { // is this a movie? int i = 0; for (i = 0; i < _knownMovieTypes.Length; i++) { if (Path.GetExtension(_df.Path()).ToLower().Contains(_knownMovieTypes[i])) { break; } } if (i < _knownMovieTypes.Length) { // this is a movie _list.Add(_df); } } else { for (int i = 0; i < _df.NumChildren(); i++) { DirectoryOrFile childDf = _df.Child(i); TraverseLoadMovieList(ref childDf, ref _list); } } }
protected void UpdateTreeView() { _jobDir = this.JobDirTextBox.Text; _jobRoot = new DirectoryOrFile(); LoadDirTree(ref _jobRoot, _jobDir, null, DirectoryOrFile.DOF_Type.DIR); EnableButtons(); JobTreeView.Nodes.Clear(); IngressTreeNode dummyRoot = new IngressTreeNode("dummy", null); TraverseDirTree(JobTreeView, _jobRoot, 0, ref dummyRoot); JobTreeView.ExpandAll(); }
private void LoadCameraPath(string path, bool ClearLists, int camNum, bool doGuess, int numMovieFilesToGuess) { _previousCamRoot = _camRoot; _previousCamera = camNum; _camRoot = new DirectoryOrFile(); LoadDirTree(ref _camRoot, path, null, DirectoryOrFile.DOF_Type.DIR); CameraTreeView.Nodes.Clear(); IngressTreeNode dummyRoot = new IngressTreeNode("dummy", null); TraverseDirTree(CameraTreeView, _camRoot, 0, ref dummyRoot); CameraTreeView.ExpandAll(); if (_sources != null) { // _previousSources = new List<DirectoryOrFile>(); _previousSources = _sources; // _previousDestinationScenes = new List<string>(); _previousDestinationScenes = _destinationScenes; _previousCamera = camNum; _previousSourceCams = _sourceCams; } if (ClearLists) { _sources = new List <DirectoryOrFile>(); SourceListBox.Items.Clear(); _destinationScenes = new List <string>(); _sourceCams = new List <int>(); } if (doGuess) { if (_guessType == tGuessType.GUESS_BY_ORDER) { MakeCopyGuessBySortOrder(camNum); } else if (_guessType == tGuessType.GUESS_BY_DATE) { MakeCopyGuessByDate(camNum, numMovieFilesToGuess); } } }
//protected void TraverseDirTree(DirectoryOrFile node, int level, ref TreeStore store, TreeIter iter) protected void TraverseDirTree(TreeView tv, DirectoryOrFile node, int level, ref IngressTreeNode tree_node) //ref TreeStore store, TreeIter iter) { IngressTreeNode thisNodeIter = new IngressTreeNode(node.Name(), node); if (level == 0) { tv.Nodes.Add(thisNodeIter); // store.AppendValues(node.Name()); } else { tree_node.Nodes.Add(thisNodeIter); // store.AppendValues(iter, node.Name()); } //for (int i = 0; i < level; i++) // Console.Write(" "); //Console.WriteLine("{0} = {1} ({2})", node.Name(), node.Path(), node.Type() == DirectoryOrFile.DOF_Type.DIR ? "D" : (node.Type() == DirectoryOrFile.DOF_Type.FILE ? "F" : "U")); for (int i = 0; i < node.NumChildren(); i++) { //TraverseDirTree(node.Child(i), level + 1, ref store, thisNodeIter); TraverseDirTree(tv, node.Child(i), level + 1, ref thisNodeIter); } }
protected void LoadDirTree(ref DirectoryOrFile node, string path, DirectoryOrFile parent, DirectoryOrFile.DOF_Type dofType) { if (node == null) { return; } string nodeName = path.Substring(path.LastIndexOf("\\") + 1); node.Set(nodeName, path, parent, dofType); if (dofType == DirectoryOrFile.DOF_Type.DIR) { //scan for directories try { List <string> dirList = new List <string>(Directory.EnumerateDirectories(path)); foreach (var dir in dirList) { string newDirName = dir.Substring(dir.LastIndexOf("\\") + 1); //Console.WriteLine("{0}", dir.Substring(dir.LastIndexOf("\\") + 1)); DirectoryOrFile sub = new DirectoryOrFile(); LoadDirTree(ref sub, dir, node, DirectoryOrFile.DOF_Type.DIR); node.AddChild(sub); if (node == _jobRoot) { if (!_scenes.Contains(newDirName)) { _scenes.Add(newDirName); SceneListBox.Items.Add(newDirName); } } } int num = dirList.Count; Console.WriteLine("{0} directories found.", dirList.Count); } catch (UnauthorizedAccessException UAEx) { Console.WriteLine(UAEx.Message); } catch (PathTooLongException PathEx) { Console.WriteLine(PathEx.Message); } //scan for files try { List <string> fileList = new List <string>(Directory.EnumerateFiles(path)); foreach (var fname in fileList) { string foo = fname.Substring(fname.LastIndexOf("\\") + 1); // Console.WriteLine("{0}", fname.Substring(fname.LastIndexOf("\\") + 1)); DirectoryOrFile sub = new DirectoryOrFile(); LoadDirTree(ref sub, fname, node, DirectoryOrFile.DOF_Type.FILE); node.AddChild(sub); } int num = fileList.Count; Console.WriteLine("{0} directories found.", fileList.Count); } catch (UnauthorizedAccessException UAEx) { Console.WriteLine(UAEx.Message); } catch (PathTooLongException PathEx) { Console.WriteLine(PathEx.Message); } } }
public IngressTreeNode(string text, DirectoryOrFile df) { DorF = df; this.Text = text; }