예제 #1
0
 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);
         }
     }
 }
예제 #2
0
        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();
        }
예제 #3
0
        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);
                }
            }
        }
예제 #4
0
        //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);
            }
        }
예제 #5
0
        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);
                }
            }
        }
예제 #6
0
 public IngressTreeNode(string text, DirectoryOrFile df)
 {
     DorF      = df;
     this.Text = text;
 }