知识大全 基于ASP.NET与XML的网络硬盘开发

Posted 文件

篇首语:但使书种多,会有岁稔时。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 基于ASP.NET与XML的网络硬盘开发相关的知识,希望对你有一定的参考价值。

基于ASP.NET与XML的网络硬盘开发  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   引言    在传输文件时常常采用FTP Email以及 网上邻居 三种方式 这几种方式各有优缺点 FTP功能强大 但使用起来较为复杂 需要进行详细设置满足各种不同需求 当用户数量不可预见时 设置会很繁琐 Email使用方便 连入Internet就可进行文件传输 但安全性不高 对于比较重要的文件一般不采用此方式 网上邻居 通过在本机上指定共享的Web文件夹并放置资源文件 用户在一定范围内可以访问这些文件 但是范围相当有限 通常在同一个DNS段地址内的用户才能顺利访问 并且在许多列表计算机上层层展开搜索来获取资源也比较费时 以上几种方式主要是 点对点 进行传输 对于 点对多 的共享模式则需要寻求另外的传输途径 网络硬盘便是一种较好的解决方式 只要用户具备足够权限 就可进行各种操作 如同使用本地计算机一样 它以HTTP方式传输 以WEB形式展现在所有用户面前 通过浏览器方式进行访问 这样 一块空间 资源互见 的共享模式得以实现      网络硬盘开发    ASP NET是一种全新的服务器端技术 它采用CLR(Common Language Runtime)结构的程序设计平台 可在服务器端生成功能强大的WEB应用程序 同时也可保留用户完整的应用状态 提供最佳的控制方式[ ] XML是数据访问领域的新技术 具有自描述性 内容与显示相分离 可扩展性 独立于平台等特点[ ] 提供了一套跨平台 跨网络 跨程序语言的数据描述方式 己逐渐成为科学与业务应用中数据表示及应用的数据交换标准格式[ ] 将这两种技术结合起来 可开发出功能强大的网络硬盘系统 例如可以查看文件夹内容 创建新文件夹以及设置访问权限 对文件及文件夹进行相关操作 上传文件到指定文件夹 下载文件到本机或在线查看文件内容等等 下面分别用C#语言实现相应功能      查看文件夹内容    进入到指定的根文件夹 通过数据绑定控件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 ];  dr[ ]=txt;//名称name  if(File Exists(d))//如果是文件    dr[ ]= 文件 ;//类型type  Int pos=currFullPath IndexOf ( Net Hard );  String relaUrl=currFullPath Substring (pos);  string url= +relaUrl+ / +txt;// 为服务器地址  dr[ ]= <a +url+ target=_blank + >下载</a> ;    Else if (Directory Exists(d))//如果是文件夹  dr[ ]= 文件夹 ;//type类型  string password=GetFolderPassword(d);//取得文件夹密码信息  Int type=GetFolderLimitType (d);  If ((password! = no )&&(type! = ))  Dr [ ]= <a +d+ >密封</a> ;//操作action  Else  Dr [ ]= <a +d+ >进入</a> ;//操作action  dr[ ]=GetFolderOwner(d);//取文件夹创建者名    Else  Response Write( <script>alert( 无对象可绑定! )</script> );  dt Rows Add(dr);//添加行  return dt;//返回数据表        此方法取出指定文件夹下的内容分别处理 如果是文件 则显示 下载 链接指向服务器文件的Url地址 对于文件夹 若是 进入受限 则显示 密封 导入到密码验证页 否则显示 进入 链接到初始页      创建文件夹及设置访问权限    在当前路径下输入新文件夹名称来创建新文件夹 通过调用 NET的IO名字空间中的类库Directory方法来实现该操作 Directory CreateDirectory(string directory) 字符串directory表示新建文件夹的完整路径 该方法默认向所有用户开放新文件夹的完全读写访问权限 对于网络硬盘共享根文件夹可手动进行创建 并设置写入权限 通过执行 internet信息服务 的 权限向导 来设置访问权限 可以设置密码来指定是否允许用户进入该文件夹以及是否允许用户删除该文件夹 此外 为了管理这些文件夹 需要保留相关设置信息 如文件夹名 位置 受限操作类型 密码及创建者等 将这些信息写入XML文件 随后通过读写该XML文件来实现对文件夹的相关操作     Public void CreateXmlOrAddFrag (string xmlFullPath string folderFullPath string owner string password int type)  XmlDocument xmlDoc=new XmlDocument();  string xml= ;  String xmlNode= <character> ;  XmlNode+= <full Path> ;  XmlNode+=folderFullPath;  XmlNode+= </full Path> ;  XmlNode+= <owner> ;  XmlNode+=owner;  XmlNode+= </owner> ;  xmlNode+= <password> ;  xmlNode+=password;  xmlNode+= </password> ;  xmlNode+= <type> ;  xmlNode+=type;  xmlNode+= </type> ;  xmlNode+= </character> ;  if(!File Exists(xmlFullPath))//若不存在则创建xml存储文件  xml= <?xml version= encoding= gb ?> ;  xml+= <folder> ;  xml+=xmlNode;  xml+= </folder> ;  xmlDoc LoadXml(xml);  xmlDoc Save(xmlFullPath);//存储文件    else//存在xml存储文件则添加新的文档片段  xmlDoc Load(xmlFullPath);  XmlDocumentFragment docFrag=xmlDoc CreateDocumentFragment();//文档片元素节点  docFrag InnerXml=xmlNode;  XmlNode currNode=xmlDoc DocumentElement;//获取文档根节点  currNode InsertBefore(docFrag currNode FirstChild);//插入文档片段  xmlDoc Save(xmlFullPath);//存储改变内容        其中 参数fileFullPath是存储文件夹信息的XML文件路径 folderFullPath是此新文件夹路径 owner是创建者名 password是密码 type表示限制操作的类型( 表示进入受限 表示删除受限) 程序首先判断存储文件夹信息的文件是否存在 不存在则动态创建文件 之后新建文件夹时 只需添加文档片段即可 这里 对XML文件的读写通过文档对象模型DOM实现 由于此处XML文件不会很大 因此对内存资源要求不会太高 速度会很快      对文件及文件夹的操作    对文件的操作包括 下载 和 删除 两种 用下面的语句实现下载功能     dr[ ]= <a +url+ target=_blank + >下载</a> ;//建立联接地址    其中 url是指定文件对应的服务器路径 通过这样的链接将文件定位到服务器上的对应位置 客户端可以下载文件到本机上 也可在服务器上打开它     删除文件则利用 NET的IO命名空间的File类库中的方法实现 File Delete(string filename) 其中 filename为文件的完整路径     如果文件夹在创建时被设置为 进入受限 或者 删除受限 用户在执行这样的操作时将被要求密码验证 只有通过验证才能完成相应的操作 NET的Directory类库提供的方法Delete()只能删除空文件夹 因此需要先清空文件夹中的内容 然后才能完成此操作 由于文件夹中可能还包含有文件夹 这里通过递归调用实现该操作     Public void Delete Folder (string dir)    For each (string d in Directory GetFileSystemEntries (dir))    If (File Exists (d))  File Delete(d);//直接删除其中的文件  Else  Delete Folder(d);//递归删除子文件夹    Directory Delete(dir);//删除已空文件夹      其中 参数dir是待删除文件夹的完整路径 程序使用循环语句 查找文件夹中的内容 若是文件则直接删除 若是文件夹 则递归调用方法自身来删除子文件夹 文件夹清空后再完成删除操作      文件上传     NET提供的类库HttpPostedFile和HttpFilesCollection可以访问上传到服务器的文件 并且可以控制文件上传过程 HttpPostedFile类封装已上传到服务器的文件对象 其方法和属性提供对每个文件内容和属性的访问 HttpFilesCollection类为多个HttpPostedFile对象提供一个容器 保存上传给服务器的数据结构的类 利用被传送的文件集合的Files属性从HttpRequest对象加以访问      )客户端表单的编码类型Enctype 设置为multipart/form data的MIME格式 提交表单使用HTTP的post方法     <Form id= form method= post enctype= multipart/form data cha138/Article/program/net/201311/13314

相关参考

知识大全 ASP.NET基于XML导航栏的制作

ASP.NET基于XML导航栏的制作  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  首先说明本文

知识大全 用Asp.net实现基于XML的留言簿

用Asp.net实现基于XML的留言簿  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一.概要 

知识大全 ASP.NET设计网络硬盘之两个重要类

ASP.NET设计网络硬盘之两个重要类  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  要进行网络

知识大全 ASP.NET设计网络硬盘之查看文件夹

ASP.NET设计网络硬盘之查看文件夹  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  就像操作本

知识大全 ASP.NET项目开发指南:XML基础知识

ASP.NET项目开发指南:XML基础知识  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  &nb

知识大全 ASP.NET项目开发指南:C#操作XML(2)

ASP.NET项目开发指南:C#操作XML(2)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 ASP.NET项目开发指南:C#操作XML(1)[2]

ASP.NET项目开发指南:C#操作XML(1)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 ASP.NET项目开发指南:C#操作XML(1)[1]

ASP.NET项目开发指南:C#操作XML(1)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 ASP.NET基于TCP的网络通信程序演示

ASP.NET基于TCP的网络通信程序演示  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本程序

知识大全 C#+ASP.NET开发基于Web的RSS阅读器

C#+ASP.NET开发基于Web的RSS阅读器  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&n