使用ASP.NET C#中的文件填充树视图
发布时间:2020-12-16 09:41:15 所属栏目:asp.Net 来源:网络整理
导读:我有一个树视图,我试图填充文件夹和文件.树视图填充文件夹就好了但不是文件.这是我的代码: protected void Page_Load(object sender,EventArgs e) { if (!IsPostBack) { PopulateTree(); } }private void PopulateTree() { //Populate the tree based on th
我有一个树视图,我试图填充文件夹和文件.树视图填充文件夹就好了但不是文件.这是我的代码:
protected void Page_Load(object sender,EventArgs e) { if (!IsPostBack) { PopulateTree(); } } private void PopulateTree() { //Populate the tree based on the subfolders of the specified VirtualImageRoot var rootFolder = new DirectoryInfo(VirtualImageRoot); var root = AddNodeAndDescendents(rootFolder,null); //Add the root to the TreeView TreeView1.Nodes.Add(root); } private TreeNode AddNodeAndDescendents(DirectoryInfo folder,TreeNode parentNode) { //Add the TreeNode,displaying the folder's name and storing the full path to the folder as the value... string virtualFolderPath; if (parentNode == null) { virtualFolderPath = VirtualImageRoot; } else { virtualFolderPath = parentNode.Value + folder.Name + "/"; } var node = new TreeNode(folder.Name,virtualFolderPath); //Recurse through this folder's subfolders var subFolders = folder.GetDirectories(); foreach (DirectoryInfo subFolder in subFolders) { var child = AddNodeAndDescendents(subFolder,node); foreach (FileInfo file in subFolder.GetFiles()) { var index = file.FullName.LastIndexOf(@"",StringComparison.Ordinal); var strname = file.FullName.Substring(index + 1); var name = strname.Split('.'); var tn = new TreeNode(); if (name.Length > 1 && name[1].ToLower() == "bch") { tn = new TreeNode(name[0],file.FullName); } else { tn = new TreeNode(name[0],file.FullName); } child.ChildNodes.Add(tn); } node.ChildNodes.Add(child); } //Return the new TreeNode return node; } 这是我的树的样子: 这是文件夹中文件的图片: 我只是想显示类型.bch的文件,以及我的树视图中的文件夹.有人可以告诉我我做错了什么吗? 解决方法
问题是您的代码没有考虑文件夹层次结构的第一级:
private void PopulateTree() { var rootFolder = new DirectoryInfo(@"C:inetpubwwwrootyourwebproject"); var root = AddNodeAndDescendents(rootFolder); TreeView1.Nodes.Add(root); } private TreeNode AddNodeAndDescendents(DirectoryInfo folder) { var node = new TreeNode(folder.Name,folder.Name); var subFolders = folder.GetDirectories(); foreach (DirectoryInfo subFolder in subFolders) { var child = AddNodeAndDescendents(subFolder); node.ChildNodes.Add(child); } foreach (FileInfo file in folder.GetFiles("*.bch")) { var tn = new TreeNode(file.Name,file.FullName); node.ChildNodes.Add(tn); } return node; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 如何在Visual Studio中生成Web服务的WSDL文件
- asp.net – 分析器错误消息:无法生成代码.抛出了类型’Sys
- asp.net-mvc – 在ASP.NET MVC应用程序中放置数据操作和业务
- asp.net-mvc – MVC5中的Bundle.IncludeDirectory输出错误的
- ASP.NET:如何将App_Data部署到webhost?
- asp.net – RequiredFieldValidator要求用户单击两次
- asp.net – 使用IIS(localhost)测试时重新学习的问题
- asp.net – 如何从身体绑定时自定义模型绑定器?
- asp.net – 存储库是否应该调用另一个存储库?或者存储库是
- Oracle 时间字段显示不正确,类型错误
推荐文章
站长推荐
- asp.net-mvc – 在DropDownList ASP.NET MVC中获
- asp.net-mvc – 如何在C#中为MVC创建值为“00”和
- asp.net-mvc – ASP.NET MVC和Visual Studio 201
- asp.net-mvc – 服务层是否可以访问HttpContext?
- asp.net – 在Azure Compute Emulator之外运行Di
- asp.net – 如何在web.config中迭代自定义键?
- asp.net – 是否可以在源代码中使用iframe和loca
- ASP.NET MVC中存在“帐户激活”工作流
- ASP.Net错误:“类型”foo“存在于”temp1.dll“
- asp.net – 发布配置文件不会发布所需的构建配置
热点阅读