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

引言

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

网络硬盘开发

ASP.NET是一种全新的服务器端技术,它采用CLR(Common 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地址;对于文件夹,若是"进入受限"则显示"密封"导入到密码验证页,否则显示"进入"链接到初始页。

时间: 2024-11-03 21:44:42

基于ASP.NET与XML的网络硬盘开发的相关文章

网络硬盘开发技巧之ASP.NET+XML

文件传送常用的三种方式FTP.Email及"网上邻居"都在一定程度上实现了文件数据的交流,但它们都主要面向"点对点"的传送,无法实现"一块空间,资源互见"的应用需求,这种基于"点对多"的共享模式需要寻求另外的传输途径,网络硬盘就是一种很好的解决方式.常用传输方式及其在特定环境下面临的困难我们经常有这样的应用需求:通过网络交换公共数据文件以实现资源共享,同时保护私有数据不被非法访问,并使用简单.直观的方式操作. 英国Ewedri

一起谈.NET技术,网络硬盘开发技巧之ASP.NET+XML

文件传送常用的三种方式FTP.Email及"网上邻居"都在一定程度上实现了文件数据的交流,但它们都主要面向"点对点"的传送,无法实现"一块空间,资源互见"的应用需求,这种基于"点对多"的共享模式需要寻求另外的传输途径,网络硬盘就是一种很好的解决方式.常用传输方式及其在特定环境下面临的困难我们经常有这样的应用需求:通过网络交换公共数据文件以实现资源共享,同时保护私有数据不被非法访问,并使用简单.直观的方式操作. 英国Ewedri

ASP.NET+XML打造网络硬盘

asp.net|xml|网络|硬盘 文件传送常用的三种方式:FTP.Email及"网上邻居",都在一定程度上实现了文件数据的交流,但它们都主要面向"点对点"的传送,无法实现"一块空间,资源互见"的应用需求,这种基于"点对多"的共享模式需要寻求另外的传输途径,网络硬盘就是一种很好的解决方式. 常用传输方式及其在特定环境下面临的困难 我们经常有这样的应用需求:通过网络交换公共数据文件以实现资源共享,同时保护私有数据不被非法访问,并

ASP.NET XML的网络硬盘

    今天要交流的是超级技术篇,ASP.NET+XML打造我们自己的网络磁盘: 文件传送常用的三种方式:FTP.Email及"网上邻居",都在一定程度上实现了文件数据的交流,但它们都主要面向"点对点"的传送,无法实现"一块空间,资源互见"的应用需求,这种基于"点对多"的共享模式需要寻求另外的传输途径,网络硬盘就是一种很好的解决方式.  常用传输方式及其在特定环境下面临的困难 我们经常有这样的应用需求:通过网络交换公共数据文件

ASP.NET+XML打造网络硬盘原理分析_实用技巧

常用传输方式及其在特定环境下面临的困难 我们经常有这样的应用需求:通过网络交换公共数据文件以实现资源共享,同时保护私有数据不被非法访问,并使用简单.直观的方式操作.我们常用的文件传输FTP.Email邮件.网上邻居都能实现文件的传送.其中,"Ftp"功能最为强大,但使用起来却稍显复杂,一大堆设置足以让许多人望而止步,尤其用户数量不可预见时,针对特殊需求用户的设置将更加繁琐:"Email"是大家所熟悉的了,但它的传送不仅需要你连入Internet,而且它的安全性也是个

ASP.NET设计网络硬盘之上传文件

asp.net|上传|设计|网络|硬盘 用户最终是要和文件打交道的,文件夹仅仅是用来方便管理的.文件的上传和下载也就成为"网络硬盘"功能设计中的重要一环. 1.界面布置 这部分功能涉及到的控件主要有两个:一个是(ID)为WebFile的File Field控件,用来浏览上传文件路径:另一个是(ID)为btnUpLoad的上传按钮,单击它完成文件上传. 2.代码实现 在"设计"面板中双击btnUpLoad按钮,为其添加事件处理,其代码如下所示: private voi

Asp.net+Xml开发网络硬盘

asp.net|xml|网络|硬盘 文件传送常用的三种方式FTP.Email及"网上邻居"都在一定程度上实现了文件数据的交流,但它们都主要面向"点对点"的传送,无法实现"一块空间,资源互见"的应用需求,这种基于"点对多"的共享模式需要寻求另外的传输途径,网络硬盘就是一种很好的解决方式. 常用传输方式及其在特定环境下面临的困难 我们经常有这样的应用需求:通过网络交换公共数据文件以实现资源共享,同时保护私有数据不被非法访问,并使用

ASP.NET设计网络硬盘之两重要类

asp.net|设计|网络|硬盘 要进行"网络硬盘"功能设计,首先要熟悉.NET中处理文件和文件夹的操作.File类和Directory类是其中最主要的两个类.了解它们将对后面功能的实现提供很大的便利. System.IO.File类和System.IO.FileInfo类 在设计和实现"网络硬盘"的过程中,将大量地使用和文件系统操作相关的内容.故本节先对和文件系统相关的两个.NET类进行简要介绍. System.IO.File类和System.IO.FileInf

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

asp.net|设计|网络|硬盘 在介绍"网络硬盘"概念时已经提到,每个用户在"网络硬盘"上都有自己的一块空间.在下面程序设计中是这样处理的:为用户提供一个固定的文件夹,在这个文件夹下用户可以自己增加/删除新的文件夹或文件.如图1所示,首次打开网页时将列出该文件夹下的所有内容(包括文件和文件夹).如果想进入下一级文件夹,可以选中该文件夹,单击"打开"按钮进入.下面将就查看文件夹内容功能的实现分步骤进行说明.   1. 页面加载 由于程序所提供的用