使用Treeview模拟操作系统的文件系统

default.aspx 代码:

<%@ Page language="c#" Codebehind="default.aspx.cs" AutoEventWireup="false" Inherits="OsFilesytem._default" %>
<%@ Register TagPrefix="iewc" Namespace="Microsoft.Web.UI.WebControls" Assembly="Microsoft.Web.UI.WebControls" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm2</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<iewc:TreeView id="TreeView1" runat="server" AutoPostBack="True" BackColor="#EEEEEE"></iewc:TreeView>
</form>
</body>
</HTML>

default.aspx.cs代码:

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

using Microsoft.Web.UI.WebControls;
using System.IO;

namespace OsFilesytem
{
/// <summary>
/// WebForm2 的摘要说明。
/// </summary>
public class _default : System.Web.UI.Page
{
protected Microsoft.Web.UI.WebControls.TreeView TreeView1;

private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
TreeNode newnode=new TreeNode();
newnode.Text="我的电脑";
this.TreeView1.Nodes.Add(newnode);

try 
{
string[] drives = System.IO.Directory.GetLogicalDrives();

foreach (string str in drives)
{
TreeNode tmpNd;
tmpNd=new TreeNode();
tmpNd.Text=str;
this.TreeView1.Nodes[0].Nodes.Add(tmpNd);

//ProcessDirectory(str,tmpNd);
}

}
catch (System.IO.IOException)
{
this.Response.Write("I/O错误!");
}
catch (System.Security.SecurityException)
{
this.Response.Write("没有访问权限!");
}
}
}


public void ProcessDirectory(string targetDirectory,TreeNode TN)
{
if(targetDirectory.ToString()==@"A:\")
{
return;
}

TreeNode tmpNd;
try
{
// Process the list of files found in the directory
string [] fileEntries = Directory.GetFiles(targetDirectory);
foreach(string fileName in fileEntries)
{
tmpNd=new TreeNode();

//只显示文件名
tmpNd.Text=fileName.Substring(fileName.LastIndexOf(@"\")+1);

//显示文件 全名(路径+名称)
//tmpNd.Text=fileName;

TN.Nodes.Add(tmpNd);
}

// Recurse into subdirectories of this directory  
string [] subdirectoryEntries = Directory.GetDirectories(targetDirectory);
foreach(string subdirectory in subdirectoryEntries)
{
tmpNd=new TreeNode();

//只显示文件夹名
tmpNd.Text=subdirectory.Substring(subdirectory.LastIndexOf(@"\")+1);

//显示文件夹 全名(路径+名称)
//tmpNd.Text=subdirectory;

TN.Nodes.Add(tmpNd);

//ProcessDirectory(subdirectory,tmpNd);
}
}
catch
{
}
}


/// <summary>
/// 获得当前结点的全名
/// </summary>
/// <param name="TN">当前结点</param>
/// <returns>全名</returns>
private string GetFullName(TreeNode TN)
{
if(TN.Text=="我的电脑")
{
return "我的电脑";
}
string str_fullname="";

while(((TreeNode)TN.Parent).Text!="我的电脑")
{
str_fullname = TN.Text + @"\" + str_fullname;
TN=(TreeNode)TN.Parent;
}
str_fullname =TN.Text + str_fullname;
return str_fullname;
}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{    
this.TreeView1.Expand += new Microsoft.Web.UI.WebControls.ClickEventHandler(this.TreeView1_Expand);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion
private void TreeView1_Expand(object sender, Microsoft.Web.UI.WebControls.TreeViewClickEventArgs e)
{
TreeNode TNS=this.TreeView1.GetNodeFromIndex(e.Node);

foreach(TreeNode TN in TNS.Nodes)
{
this.ProcessDirectory(this.GetFullName(TN),TN);
}
}
}


OVER

转载于:https://www.cnblogs.com/RobotTech/archive/2006/10/11/526254.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/300355.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab怎么绘制曲线,如何在Matlab中绘制曲线

您需要定义要绘制的中间点.然后您可以手动定义它们,也可以查看样条插值.使用样条插值时,只需要一个中间点即可确定完整曲线.在MATLAB中,你可以找到类似这样的演示spline2d.以下是它的要点&#xff1a;% end pointsX [0 1];Y [0 0];% intermediate point (you have to choose …

MapReduce经典案例——统计单词数

资源文件file.txthello hadoophello wordthis is my first hadoop program分析&#xff1a;一个文档中每行的单词通过空格分割后获取&#xff0c;经过map阶段可以将所有的单词整理成如下形式&#xff1a;key:hello value:1key:hadoop value:1key:hello value:1key:word value:1…

六月赞歌

七月的脚步离我们近了&#xff0c;在六月即将过去的时候我是有些话想说的。今年的6月过得很充实&#xff0c;虽谈不上硕果累累&#xff0c;但至于还是收获颇丰。在这最想提的是生活杂谈小组在几位组长们的激情带动&#xff0c;各组员的热情参与下&#xff0c;站到了小组排行榜的…

避不开的分布式事务

前言关于前面系列的文章已经说到分布式服务之间的通信&#xff0c;则分布式事务接下来就是我们要一起学习的主题&#xff0c;走起。数据库事务在现有大大小小的系统中几乎是避免不开的&#xff0c;或多或少总会有一些业务关联在一块&#xff1b;对于单机事务的应用场景和操作&a…

matlab如何求矩阵的转置矩阵,怎么用MATLAB程序求转置矩阵?急需,高手帮忙………………...

在Matlab下输入&#xff1a;edit&#xff0c;然后将下面两行百分号之间的内容&#xff0c;复制进去&#xff0c;保存%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%function ff31(x)f1./[(x-2).^20.1]1./[(x-3).^40.01];%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 返…

任正非一语中的,未来科技的发展核心靠他们!

▲ 点击查看今年6月&#xff0c;华为的任正非接受媒体的采访&#xff0c;多次谈及基础教育&#xff0c;不禁流下了英雄泪&#xff0c;谈话中&#xff0c;曾27次提到了数学&#xff0c;并且表示等自己退休后要找一个好大学&#xff0c;好好地学一学数学。他还谈到了数学对于华…

Windows 2003下×××服务器架设攻略

原文地址[url]http://bbs.51cto.com/thread-49347-1-1.html[/url]Windows 2003下服务器架设攻略笔者有不少朋友因为工作关系常常移动办公&#xff0c;因此资料的传递、与公司信息的及时交流或是累了想在异地打开公司或家里的电脑看看电影等等应用显得很头疼。这方面的应用也就是…

***测试工具

Firefox是一个出自Mozilla组织的流行的web浏览器。Firefox的流行并不仅仅是因为它是一个好的浏览器&#xff0c;而是因为它能够支持插件进而加强它自身的功能。Mozilla有一个插件站点&#xff0c;在那里面有成千上万的&#xff0c;非常有用的&#xff0c;不同种类的插件。一些插…

微软出手,蚕食JetBrains系市场?

文 | Travis出品 | OSC开源社区&#xff08;ID&#xff1a;oschina2013&#xff09;近日微软公布了针对 Java 编程语言的 Visual Studio Code 更新路线图&#xff0c;根据路线图的计划&#xff0c;微软将在开发体验、安全、远程开发等方面做出改善。这个更新路线图涵盖了 2021 …

博客园电子月刊第三期出炉

关于月刊&#xff1a; 您是否错过精彩的文章&#xff1f;您是否想要权威的资料&#xff1f;您是否需要系统的总结&#xff1f;在本期博客园月刊中&#xff0c;您可以找到这个月博客园整理性的资料。 博客园电子期刊已经发布3期了&#xff0c;目前已经有1000多位用户订阅博客园月…

我思故我在---

好久没有写东西了&#xff0c;自己自诩为有文采&#xff0c;有个性&#xff0c;靠&#xff0c;全是瞎蒙的。没有任何意义。如果你只能用过去的成绩来骗自己的话&#xff0c;那么你的生活一定很糟糕&#xff1a;快乐\成功都是过去时&#xff0c;而不是现在时。这样怎么可能是个上…

东北大哥在线反套路hhhhhh | 今日最佳

全世界只有3.14 % 的人关注了青少年数学之旅

matlab dy,高手,请问用matlab如何解下面方程:y*Dy=a+b*y;我的计算结果里面含有wrightOmega ,怎样解出一般解?...

满意答案weiliyao772013.07.20采纳率&#xff1a;49% 等级&#xff1a;12已帮助&#xff1a;11659人#include #include using namespace std;#define N 20double a[N][N];double x[N1];double b[N1];int n;//n方程个数&#xff0c;n未知数个数int set( ){cout<cin>>…

如何衡量两个词的相关度

在信息论中常用互信息&#xff08;MI&#xff0c;Mutual Information&#xff09;来衡量两个词的相关度MI(X,Y)log2p(x,y)/p(x)p(y)MI越大&#xff0c;表示两个词之间的结合越紧密。当X,Y关联大时&#xff0c;MI(X,Y)大于0&#xff1b;当X与Y关系弱时&#xff0c;MI(X,Y)等于0&…

[005] .NET 的执行模型

.NET大牛之路 • 王亮精致码农 • 2021.07.06前面我们介绍 .NET 历史时讲过&#xff0c;微软基于 .NET Framework 重新设计并创造了跨平台的 .NET Core&#xff0c;目前已经发展到 .NET 5 版本&#xff0c;它的性能较之前的 .NET Framework 有巨大的提升。而 .NET Framework 产…

可爱的穆里尼奥,可爱的切尔西!

这是刚刚结束的欧冠比赛结果&#xff1a;我所关注的切尔西对巴萨的比赛&#xff0c;以2:2的赛果结束&#xff0c;无论如何&#xff0c;是很满意的.OK,我可经先补会觉了&#xff0c;待白昼到来之时&#xff0c;再聊几句。

美国警察开特斯拉追疑犯,时速飙到193公里,然后发现没电了...

全世界只有3.14 % 的人关注了青少年数学之旅晚上11点&#xff0c;时速一度高达193公里&#xff01;美国警察在湾区的一条州际公路上&#xff0c;对嫌犯实施追捕。与往常不同的是&#xff0c;这位警员驾驶的是一辆特斯拉Model S&#xff0c;0到60英里&#xff08;96公里&#xf…

苹果cms主动推送php,飞飞cms、海洋cms、苹果cms、maccms百度主动实时自动推送代码...

飞飞cms、海洋cms、苹果cms、maccms百度主动实时自动推送代码该代码适用于所有网站&#xff0c;不限于苹果cms、飞飞海洋等。其他帝国cms、wordpress等等都可以使用。代码如下&#xff1a;(function(){var bp document.createElement(script);var curProtocol window.locatio…

梅原对justin wang 真人版

转载于:https://www.cnblogs.com/oiramario/archive/2008/07/15/1243337.html

Hello Blazor:(6)你必须踩过这5个坑,才算学会部署Blazor WebAssembly到静态网站

上次的文章中&#xff0c;我们介绍了Blazor WebAssembly可以部署到静态文件服务器&#xff0c;而每个Github账户都可以使用GitHub Pages功能开一个自己的静态网站。那么&#xff0c;不用花钱购买服务器&#xff0c;就可以将Blazor WebAssembly项目部署到GitHub Pages作为demo展…