C#Directory.GetFiles(" C:\\ Users"," *",SearchOption.AllDirectories):拒绝访问路径。

时间:2017-11-01 19:06:15

标签: c# .net visual-studio directory file-handling

我创建了一个应用程序,首先加载Listbox1中root(C:\)中的所有文件夹。当您单击其中一个文件夹时,其子目录中的所有.TXT文件都必须显示在Listbox2中。

using System;
using System.Windows.Forms;
using System.IO;

namespace Week10 {
    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
            loadRootDirInListbox(@"C:\");
        }

        private void loadRootDirInListbox(string path) {
            foreach(string item in Directory.GetDirectories(path)) {
                listBox1.Items.Add(item);
            }
        }

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e) {
            int clicked = listBox1.SelectedIndex;
            string[] files = getTXTfilesInDir(listBox1.Items[clicked].ToString());
            loadInListbox2(files);
        }

        private string[] getTXTfilesInDir(string path) {
            return Directory.GetFiles(path, "*.txt", SearchOption.AllDirectories);
        }

        private void loadInListbox2(string[] items) {
            listBox2.Items.Clear();
            foreach(string item in items) listBox2.Items.Add(item);
        }
    }
}

除了某些文件夹在单击时发出此异常。例如,当我点击C:\ Users时,我将得到以下异常:

" System.UnauthorizedAccessException:'访问路径C:\ Users \ All Users \ Application Data被拒绝。'"

我尝试在管理员模式下运行VS17,但这并没有什么不同。有没有办法跳过这些未经授权的文件夹,例如“应用程序数据”?

0 个答案:

没有答案