示例#1
0
        private void PopulateTreeView(string directoryValue, TreeNode parentNode)
        {
            string[] directoryArray = Directory.GetDirectories(directoryValue);

            try
            {
                if (directoryArray.Length != 0)
                {
                    foreach (string directory in directoryArray)
                    {
                        substringDirectory = directory.Substring(
                        directory.LastIndexOf('\\') + 1,
                        directory.Length - directory.LastIndexOf('\\') - 1);

                        if (!substringDirectory.Equals(".git", StringComparison.CurrentCultureIgnoreCase) && !substringDirectory.Equals("Logs", StringComparison.CurrentCultureIgnoreCase))
                        {
                            TreeNode myNode = new TreeNode(substringDirectory);

                            parentNode.Nodes.Add(myNode);

                            PopulateTreeView(directory, myNode);
                        }
                    }

                }
                var fileArray = Directory.GetFiles(directoryValue);
                foreach (var file in fileArray)
                {
                    TreeNode fileNode = new TreeNode(new FileInfo(file).Name);
                    fileNode.Tag = file.Replace(_repo.Directory.Replace("\\.git", string.Empty) + "\\", string.Empty).Replace("\\", "/");
                    parentNode.Nodes.Add(fileNode);
                }

                parentNode.ClearEmptyChildren();
            }
            catch (UnauthorizedAccessException)
            {
                parentNode.Nodes.Add("Access denied");
            } // end catch
        }