Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DirectorySecurity dSecurity = Directory.GetAccessControl(Dir);
- foreach (FileSystemAccessRule rule in dSecurity.GetAccessRules(true, true, typeof(System.Security.Principal.NTAccount)))
- {
- if (rule.FileSystemRights == FileSystemRights.Read)
- {
- ad_treeView_trv.Nodes.Add(Dir);
- }
- }
- private void Ad_folder_select_btn_Click(object sender, EventArgs e)
- {
- FolderBrowserDialog folderBrowserDialog1 = new FolderBrowserDialog();
- folderBrowserDialog1.SelectedPath = ad_folder_select_txtBox.Text;
- DialogResult drResult = folderBrowserDialog1.ShowDialog();
- if (drResult == System.Windows.Forms.DialogResult.OK)
- ad_folder_select_txtBox.Text = folderBrowserDialog1.SelectedPath;
- }
- private void Ad_folder_load_btn_Click(object sender, EventArgs e)
- {
- // Setting Inital Value of Progress Bar
- ad_progressBar_prg.Value = 0;
- // Clear All Nodes if Already Exists
- ad_treeView_trv.Nodes.Clear();
- ad_toolTip_tlt.ShowAlways = true;
- if (ad_folder_select_txtBox.Text != "" && Directory.Exists(ad_folder_select_txtBox.Text))
- LoadDirectory(ad_folder_select_txtBox.Text);
- else
- MessageBox.Show("Select Directory!!");
- }
- public void LoadDirectory(string Dir)
- {
- DirectoryInfo di = new DirectoryInfo(Dir);
- //Setting ProgressBar Maximum Value
- ad_progressBar_prg.Maximum = Directory.GetFiles(Dir, "*.*", SearchOption.AllDirectories).Length + Directory.GetDirectories(Dir, "**", SearchOption.AllDirectories).Length;
- TreeNode tds = ad_treeView_trv.Nodes.Add(di.Name);
- tds.Tag = di.FullName;
- tds.StateImageIndex = 0;
- LoadFiles(Dir, tds);
- LoadSubDirectories(Dir, tds);
- DirectorySecurity dSecurity = Directory.GetAccessControl(Dir);
- foreach (FileSystemAccessRule rule in dSecurity.GetAccessRules(true, true, typeof(System.Security.Principal.NTAccount)))
- {
- if (rule.FileSystemRights == FileSystemRights.Read)
- {
- ad_treeView_trv.Nodes.Add(Dir);
- }
- }
- }
- private void LoadSubDirectories(string dir, TreeNode td)
- {
- // Get all subdirectories
- string[] subdirectoryEntries = Directory.GetDirectories(dir);
- // Loop through them to see if they have any other subdirectories
- foreach (string subdirectory in subdirectoryEntries)
- {
- DirectoryInfo di = new DirectoryInfo(subdirectory);
- TreeNode tds = td.Nodes.Add(di.Name);
- tds.StateImageIndex = 0;
- tds.Tag = di.FullName;
- LoadFiles(subdirectory, tds);
- LoadSubDirectories(subdirectory, tds);
- UpdateProgress();
- }
- }
- private void LoadFiles(string dir, TreeNode td)
- {
- string[] Files = Directory.GetFiles(dir, "*.*");
- // Loop through them to see files
- foreach (string file in Files)
- {
- FileInfo fi = new FileInfo(file);
- TreeNode tds = td.Nodes.Add(fi.Name);
- tds.Tag = fi.FullName;
- tds.StateImageIndex = 1;
- UpdateProgress();
- }
- }
- private void UpdateProgress()
- {
- if (ad_progressBar_prg.Value < ad_progressBar_prg.Maximum)
- {
- ad_progressBar_prg.Value++;
- int percent = (int)(((double)ad_progressBar_prg.Value / (double)ad_progressBar_prg.Maximum) * 100);
- 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));
- Application.DoEvents();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement