C#WPF树视图的填充速度非常慢。未经授权的访问可能会减速?
我只是在玩一些C#WPF应用程序,我只是试图重新创建本地目录的树视图。它的速度非常慢,我认为部分原因是因为一些文件夹存在访问问题 如果我将路径设置为文档或下载其即时路径。如果我将它设置为justusers\或user\myUsername,它就会一直运行,我会捕获一系列访问异常。是否可以先检查我是否有权访问该目录,例如AppData或其他用户文件夹?或者是试接错误的位置 我的相关填充代码如下C#WPF树视图的填充速度非常慢。未经授权的访问可能会减速?,c#,.net,wpf,C#,.net,Wpf,我只是在玩一些C#WPF应用程序,我只是试图重新创建本地目录的树视图。它的速度非常慢,我认为部分原因是因为一些文件夹存在访问问题 如果我将路径设置为文档或下载其即时路径。如果我将它设置为justusers\或user\myUsername,它就会一直运行,我会捕获一系列访问异常。是否可以先检查我是否有权访问该目录,例如AppData或其他用户文件夹?或者是试接错误的位置 我的相关填充代码如下 private static TreeViewItem PopulateNodes(DirectoryI
private static TreeViewItem PopulateNodes(DirectoryInfo directoryInfo)
{
var directoryNode = new TreeViewItem { Header = directoryInfo.Name };
try
{
foreach (var directory in directoryInfo.EnumerateDirectories())
directoryNode.Items.Add(PopulateNodes(directory));
foreach (var file in directoryInfo.EnumerateFiles())
directoryNode.Items.Add(new TreeViewItem { Header = file.Name });
return directoryNode;
}
catch (UnauthorizedAccessException ex){
Console.WriteLine(ex);
};
return directoryNode;
}
如果你递归调用这个函数,那么你必须限制深度,否则它会很慢。我想递归可能会很慢,你推荐的任何更好的方法。已经告诉过你:限制深度!您还可以在添加数据之前使用
Treeview.BeginUpdate()
,在添加数据之后使用Treeview.EndUpdate()
来加快速度。限制递归方面做得不多,但我将尝试这两个建议。谢谢