我创建了一个应用程序,首先加载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,但这并没有什么不同。有没有办法跳过这些未经授权的文件夹,例如“应用程序数据”?