设为首页
加入收藏
站内地图
旧版入口
当前位置:首页 > 站长学院 > 网络编程 > ASP.NET

ASP.NET设计网络硬盘之文件夹实现

作者:佚名 出处:网络转载 时间:10-01 点击:

内容载入中...
在介绍“网络硬盘”概念时已经提到, 每个用户在“网络硬盘”上都有自己的一块空间.在下面程序设计中是这样处理的:为用户提供一个固定的文件夹, 在这个文件夹下用户可以自己增加/删除新的文件夹或文件.如图1所示, 首次打开网页时将列出该文件夹下的所有内容( 包括文件和文件夹 ).如果想进入下一级文件夹, 可以选中该文件夹, 单击“打开”按钮进入.下面将就查看文件夹内容功能的实现分步骤进行说明. 图1 用户主界面
1. 页面加载 由于程序所提供的用户目录是固定的, 如c:UserDir, 而且要求在页面加载后显示该文件夹所有内容, 所以需要在Page_Load中进行相应操作:首先要判断该文件夹是否存在, 如果不存在需要先创建它;

    然后再列出该文件夹下的内容, 其代码实现如下:

private void Page_Load( object sender, System.EventArgs e )
{
    // 在此处放置用户代码以初始化页面 if( Page.IsPostBack == false )
    {
        CurrentPath = @"c:UserDir";
        //设置当前目录 if( Directory.Exists( @"c:UserDir" ) == false )
        //若该目录不存在, 创建该目录 Directory.CreateDirectory( @"c:UserDir" );
        LoadDir( CurrentPath );
       //初始化装入目录
       
    }
}
LoadDir( string FullPath )方法用来列出该文件夹下的所有内容, 其代码如下:

private void LoadDir( string FullPath )
{
    CurrentPath = FullPath;
    ArrayList values = new ArrayList( );
    string [] MyFiles, MyDirs;
    MyFiles = Directory.GetFiles( FullPath );
    //得到该目录下所有文件 if( CurrentPath! = @"c:UserDir" )
   //若不是顶级目录, 增加“返回上级目录”选项
    {
        values.Add( "返回上级目录" );
    }
    values.AddRange( MyFiles );
    //加入文件 MyDirs = Directory.GetDirectories( FullPath );
    //得到该目录下所有目录 values.AddRange( MyDirs );
   //加入目录 FileList.DataSource = values;
    //设置数据源 FileList.DataBind( );
   //绑定数据
   
}
首先要定义一个ArrayList数组对象values, 用以存放顶级目录下的所有内容( 包括文件夹名和文件名 ).Directory.GetFiles( )方法返回顶级目录下的所有文件名, 其返回类型为一个string数组, 故需要定义一个string类对象MyFiles来保存返回的文件名;

Directory.GetDirectories( )返回顶级目录下的所有文件夹名称, 同样定义一个string数组对象MyDirs来保存它们.完成这些后就可以把MyFiles和MyDirs数组添加进values对象了.最后要做的只是为ListBox控件对象FileList添加数据源和绑定数据.有一点需要说明:如果当前目录不是顶级目录, 则需要能返回到上级目录, 为此需要在FileList中添加“返回上级目录”选项. 2. 多级目录查看 通过上一部分列出的两段代码, 就可以完成在页面加载时列出顶级目录下的所有内容.当然列出顶级目录下的内容还是不够的, 和Windows操作系统类似, 网络硬盘中文件夹目录也是嵌套的, 存在二级或者多级文件夹目录.为此要进行一些相应的处理, 使得用户可以查看多级文件夹目录内容.前面界面设计中提供了一个“打开”按钮, 用户选择相应的文件夹后, 单击该按钮就可以查看该文件夹下的内容. 下面就为“打开”按钮添加代码.在“设计”面板中双击该按钮, 系统就会自动为其添加事件, 其代码内容如下:

private void btnOpen_Click( object sender, System.EventArgs e )
{
    if( FileList.SelectedItem.Text == "返回上级目录" )
   //返回上级目录
    {
        string ParentPath = Directory.GetParent( CurrentPath ).ToString( );
        LoadDir( ParentPath );
        return;
    }
    else
   //打开目录
    {
        LoadDir( FileList.SelectedItem.Text );
    }
}
程序首先判断用户选中的是不是“返回上级目录”.如果是的话, 则要先通过Directory.GetParent( )方法返回上级文件夹名称, 然后再调用LoadDir( )方法来显示该目录下的内容;

    如果用户选中的不是“返回上级目录”而是一个文件夹名称, 则可以直接调用LoadDir( )方法, FileList.SelectedItem.Text为选中的文件夹名, 用来作为LoadDir( )方法的参数.
收藏本文:
】【打印页面】【推荐给朋友】【关闭窗口

站长学院

推荐信息