Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.75 KB | None | 0 0
  1. DirectorySecurity dSecurity = Directory.GetAccessControl(Dir);
  2. foreach (FileSystemAccessRule rule in dSecurity.GetAccessRules(true, true, typeof(System.Security.Principal.NTAccount)))
  3. {
  4. if (rule.FileSystemRights == FileSystemRights.Read)
  5. {
  6. ad_treeView_trv.Nodes.Add(Dir);
  7. }
  8. }
  9.  
  10. private void Ad_folder_select_btn_Click(object sender, EventArgs e)
  11. {
  12. FolderBrowserDialog folderBrowserDialog1 = new FolderBrowserDialog();
  13. folderBrowserDialog1.SelectedPath = ad_folder_select_txtBox.Text;
  14. DialogResult drResult = folderBrowserDialog1.ShowDialog();
  15. if (drResult == System.Windows.Forms.DialogResult.OK)
  16. ad_folder_select_txtBox.Text = folderBrowserDialog1.SelectedPath;
  17. }
  18.  
  19. private void Ad_folder_load_btn_Click(object sender, EventArgs e)
  20. {
  21. // Setting Inital Value of Progress Bar
  22. ad_progressBar_prg.Value = 0;
  23. // Clear All Nodes if Already Exists
  24. ad_treeView_trv.Nodes.Clear();
  25. ad_toolTip_tlt.ShowAlways = true;
  26. if (ad_folder_select_txtBox.Text != "" && Directory.Exists(ad_folder_select_txtBox.Text))
  27. LoadDirectory(ad_folder_select_txtBox.Text);
  28. else
  29. MessageBox.Show("Select Directory!!");
  30. }
  31.  
  32. public void LoadDirectory(string Dir)
  33. {
  34. DirectoryInfo di = new DirectoryInfo(Dir);
  35. //Setting ProgressBar Maximum Value
  36. ad_progressBar_prg.Maximum = Directory.GetFiles(Dir, "*.*", SearchOption.AllDirectories).Length + Directory.GetDirectories(Dir, "**", SearchOption.AllDirectories).Length;
  37. TreeNode tds = ad_treeView_trv.Nodes.Add(di.Name);
  38. tds.Tag = di.FullName;
  39. tds.StateImageIndex = 0;
  40. LoadFiles(Dir, tds);
  41. LoadSubDirectories(Dir, tds);
  42. DirectorySecurity dSecurity = Directory.GetAccessControl(Dir);
  43. foreach (FileSystemAccessRule rule in dSecurity.GetAccessRules(true, true, typeof(System.Security.Principal.NTAccount)))
  44. {
  45. if (rule.FileSystemRights == FileSystemRights.Read)
  46. {
  47. ad_treeView_trv.Nodes.Add(Dir);
  48. }
  49. }
  50. }
  51.  
  52. private void LoadSubDirectories(string dir, TreeNode td)
  53. {
  54. // Get all subdirectories
  55. string[] subdirectoryEntries = Directory.GetDirectories(dir);
  56. // Loop through them to see if they have any other subdirectories
  57. foreach (string subdirectory in subdirectoryEntries)
  58. {
  59.  
  60. DirectoryInfo di = new DirectoryInfo(subdirectory);
  61. TreeNode tds = td.Nodes.Add(di.Name);
  62. tds.StateImageIndex = 0;
  63. tds.Tag = di.FullName;
  64. LoadFiles(subdirectory, tds);
  65. LoadSubDirectories(subdirectory, tds);
  66. UpdateProgress();
  67.  
  68. }
  69. }
  70.  
  71. private void LoadFiles(string dir, TreeNode td)
  72. {
  73. string[] Files = Directory.GetFiles(dir, "*.*");
  74.  
  75. // Loop through them to see files
  76. foreach (string file in Files)
  77. {
  78. FileInfo fi = new FileInfo(file);
  79. TreeNode tds = td.Nodes.Add(fi.Name);
  80. tds.Tag = fi.FullName;
  81. tds.StateImageIndex = 1;
  82. UpdateProgress();
  83.  
  84. }
  85. }
  86.  
  87. private void UpdateProgress()
  88. {
  89. if (ad_progressBar_prg.Value < ad_progressBar_prg.Maximum)
  90. {
  91. ad_progressBar_prg.Value++;
  92. int percent = (int)(((double)ad_progressBar_prg.Value / (double)ad_progressBar_prg.Maximum) * 100);
  93. ad_progressBar_prg.CreateGraphics().DrawString(percent.ToString() + "%", new Font("Arial", (float)8.25, FontStyle.Regular), Brushes.Black, new PointF(ad_progressBar_prg.Width / 2 - 10, ad_progressBar_prg.Height / 2 - 7));
  94.  
  95. Application.DoEvents();
  96. }
  97. }
  98.  
  99. }
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement