科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件基于ASP.NET与XML的网络硬盘开发

基于ASP.NET与XML的网络硬盘开发

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

该文介绍利用ASP.NET技术与XML技术开发网络硬盘,使其具有基本的文件管理及操作功能,采用HTTP方式传输,实现系统资源共享。

作者:黄悦 肖建 来源:计算机与信息技术 2007年11月7日

关键字: ASP.NET XML 网络硬盘 开发 Windows

  • 评论
  • 分享微博
  • 分享邮件
 引言

  在传输文件时常常采用FTP、Email以及"网上邻居"三种方式,这几种方式各有优缺点。FTP功能强大,但使用起来较为复杂,需要进行详细设置满足各种不同需求,当用户数量不可预见时,设置会很繁琐。Email使用方便,连入Internet就可进行文件传输,但安全性不高,对于比较重要的文件一般不采用此方式。"网上邻居"通过在本机上指定共享的Web文件夹并放置资源文件,用户在一定范围内可以访问这些文件,但是范围相当有限,通常在同一个DNS段地址内的用户才能顺利访问,并且在许多列表计算机上层层展开搜索来获取资源也比较费时。以上几种方式主要是"点对点"进行传输,对于"点对多"的共享模式则需要寻求另外的传输途径,网络硬盘便是一种较好的解决方式。只要用户具备足够权限,就可进行各种操作,如同使用本地计算机一样。它以HTTP方式传输,以WEB形式展现在所有用户面前,通过浏览器方式进行访问,这样,"一块空间,资源互见"的共享模式得以实现。

  网络硬盘开发

  ASP.NET是一种全新的服务器端技术,它采用CLRCommon Language Runtime)结构的程序设计平台,可在服务器端生成功能强大的WEB应用程序,同时也可保留用户完整的应用状态,提供最佳的控制方式[1]。XML是数据访问领域的新技术,具有自描述性、内容与显示相分离、可扩展性、独立于平台等特点[2],提供了一套跨平台、跨网络、跨程序语言的数据描述方式,己逐渐成为科学与业务应用中数据表示及应用的数据交换标准格式[3]。将这两种技术结合起来,可开发出功能强大的网络硬盘系统,例如可以查看文件夹内容,创建新文件夹以及设置访问权限,对文件及文件夹进行相关操作,上传文件到指定文件夹,下载文件到本机或在线查看文件内容等等。下面分别用C#语言实现相应功能。

  1、查看文件夹内容

  进入到指定的根文件夹,通过数据绑定控件Data Grid列表显示该文件夹内容,包括类别、名称、权限等。由于通过动态创建数据表Data Table读取指定文件夹内容,并作为数据源与显示控件Data Grid绑定,因此数据的显示是动态的。创建动态表的函数如下:

public Data Table Bind(string fullFolderPath)//创建数据表读取文件夹内容
{
 Data Table DT=new Data Table ();
 Data Row dr;
 //首先创建数据表结构
 Dt.Columns.Add (new DataColumn ("type", System.Type.GetType ("System. String")));//类型
 Dt.Columns.Add (new Data Column ("name", System.Type.GetType ("System. String")));//名称
 Dt.Columns.Add (new Data Column ("action", System.Type.GetType ("System. String")));//操作
 Dt.Columns.Add (new Data Column ("owner", System.Type.GetType ("System. String")));//创建者
 //为每一行填充数据
 For each (string d in Directory.GetFileSystemEntries (fullFolderPath)){
  dr=dt.NewRow();//新建行
  String [] parts=d. Split (new char []{’\\’});
  String txt=parts [parts. Length-1];
  dr[1]=txt;//名称name
  if(File.Exists(d))//如果是文件
  {
   dr[0]="文件";//类型type
   Int pos=currFullPath. IndexOf ("Net Hard");
   String relaUrl=currFullPath. Substring (pos);
   string url="http://202.115.64.13/SharedSpace/"+relaUrl+"/"+txt;//202.115.64.13为服务器地址
   dr[2]="<a href="+url+" target=_blank"+">下载</a>";
  }
  Else if (Directory. Exists(d)){//如果是文件夹
   dr[0]="文件夹";//type类型
   string password=GetFolderPassword(d);//取得文件夹密码信息
   Int type=GetFolderLimitType (d);
   If ((password! ="no")&&(type! =1))
    Dr [2]="<a href=PasswordValidate.aspx? path="+d+">密封</a>";//操作action
   Else
    Dr [2]="<a href=Default.aspx? path="+d+">进入</a>";//操作action
    dr[3]=GetFolderOwner(d);//取文件夹创建者名
  }
  Else
   Response.Write("<script>alert(’无对象可绑定!’)</script>");
   dt.Rows.Add(dr);//添加行
   return dt;//返回数据表
 }
}

  此方法取出指定文件夹下的内容分别处理:如果是文件,则显示"下载"链接指向服务器文件的Url地址;对于文件夹,若是"进入受限"则显示"密封"导入到密码验证页,否则显示"进入"链接到初始页。
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章