我正在尝试将目录列表添加到 TreeView 系统,但我遇到了似乎是用户访问问题的问题。我尝试了各种步骤来解决这个问题,但都没有奏效。其中包括:更改解决方案清单文件中的安全性,使用 try catch 跳过我无法访问的文件,以及更改我的 Windows 用户文件夹设置以完全控制(管理员)。我在网上到处寻找类似问题的答案,大多数人刚刚使用了 try catch 系统。这对我的系统不起作用,因为一切都冻结了,它就在那里。然后,该程序就像在我的整个计算机上没有找到单个目录一样。我的代码包括:
public Folder_Browser()
{
InitializeComponent();
MapDirectory();
}
private void MapDirectory()
{
TreeNode rootNode;
DirectoryInfo dirPrograms = new DirectoryInfo(@"/");
DriveInfo[] loadedDrives = DriveInfo.GetDrives();
foreach (DriveInfo dr in loadedDrives)
{
if (dr.DriveType != DriveType.Removable)
{
DirectoryInfo info = new DirectoryInfo(dr.Name);
if (info.Exists)
{
rootNode = new TreeNode(info.Name);
rootNode.Tag = info;
GetDirectories(info.GetDirectories(), rootNode);
treeView1.Nodes.Add(rootNode);
}
}
}
}
private void GetDirectories(DirectoryInfo[] subDirs, TreeNode nodeToAddTo)
{
TreeNode aNode;
DirectoryInfo[] subSubDirs;
foreach (DirectoryInfo subDir in subDirs)
{
aNode = new TreeNode(subDir.Name, 0, 0);
aNode.Tag = subDir;
aNode.ImageKey = "folder";
try
{
subSubDirs = subDir.GetDirectories();
//ERROR HERE^^^^^^^
if (subSubDirs != null && subSubDirs.Length != 0)
{
GetDirectories(subSubDirs, aNode);
}
nodeToAddTo.Nodes.Add(aNode);
}
catch (System.UnauthorizedAccessException)
{
}
}
}
每次我尝试为此类问题实施其他人的解决方案时,我都没有得到任何类型的目录列表。该程序占用了太多资源,只是忽略了它无法触及的文件夹。我忽略了一些简单的事情吗?或者这种方法是不可能的?任何帮助表示赞赏,干杯。