ASP.NET+XML打造网络硬盘原理分析(3)


//删除文件夹的方法
public void DeleteFolder(string dir)
{
foreach(string d in Directory.GetFileSystemEntries(dir))
{
if(File.Exists(d))
File.Delete(d);//直接删除其中的文件
else
DeleteFolder(d);//递归删除子文件夹
}
Directory.Delete(dir);//删除已空文件夹
}


  其中,参数dir是待删除文件夹的完整路径。程序使用循环语句,查找文件夹中的内容,是文件则直接删除,如果是文件夹,则递归调用方法自身来删除子文件夹,文件夹清空后再完成删除操作。

  4、文件上传:

  要实现网络硬盘的功能,必须要有可供操作的文件,这些文件来自于客户端的上传(当然,服务器端也能提供这些文件,但这不是网络硬盘的重点),过去我们实现文件的上传,在Asp中通常是使用第一些文件上传组件,比如Microsoft 的PostingAcceptor组件,另外还有第三方提供的一些付费组件(不过说真的,这些组件并不好用)。那时候想要自己开发这样的文件上传组件,相当繁琐;而现在,.Net提供的类库HttpPostedFile和HttpFilesCollection可以很容易地访问上载到服务器的文件,同时使开发人员控制文件上载过程。其中的HttpPostedFile类封装已经上传到服务器的文件对象,其方法和属性提供对每个文件的内容和属性的访问;HttpFileCollection类则为多个HttpPostedFile对象提供一个容器,用作保存上传给服务器的数据结构的类,这样你就可以利用被传送的文件集合,该文件集合可通过其Files属性从HttpRequest 对象访问,一旦服务器接收了请求的整个内容,该集合就可以访问。这些内置的组件使得Asp.net中实现文件上传相当容易,甚至只需要几行代码就可以了!关于Asp.net中实现文件上传的文章很多,这里不做专门的阐述,需要的话你可以参考那些文章,这里,只提示你需要注意以下几点:

  1)、客户端表单的编码类型Enctype 设置为multipart/form-data的MIME格式,提交表单使用Http的post方法,象下面这样:

<form method="post" enctype="multipart/form-data/form-data" runat="server" >

  2)、HttpInputFile控件运行在服务器端,设置runat=server,type=file ,象下面这样:

<INPUT type="file" size="6" runat="server">

  3)、要上传多个文件,你可以布置多个HttpInputFile控件,然后使用HttpRequest.Files来获取这些文件。

  5、环境配置文件Web.config的处理:

  在中文状态下,你可能需要将全球化设置编码由默认的"Utf-8"改为"gb2312",语句如下:

复制代码 代码如下:


<globalization
requestEncoding="gb2312"
responseEncoding="gb2312"
/>



  同时,Web.config默认设置的的文件大小限制可能并不能满足你的需要,你或许需要将限制尺度放大一些。这通过修改参数maxRequestLength的值来实现,如下所示:

复制代码 代码如下:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjdsds.html