| 
				 } } 
四、删除文件 
在浏览信息的GridView数据控件中单击 ,即可删除相应的文件及文件夹。此操作是链接到浏览文件信息的页面本身(Main.aspx),通过传递type、sign和thedir 3个参数,其中type参数表示当前所要执行的操作,其值为delete、browser、down之一;sign=1表示删除的是文件,sign=0表示删除的是文件夹;thedir参数表示完整的文件名。 
private void DeleteFileFolder(string fname, int sign) 
    { switch (sign) 
        {case 1:{ System.IO.File.Delete(fname);break; } 
         case 0:{ System.IO.Directory.Delete(fname, true);break;}} 
    } 
五、下载文件 
在浏览信息的GridView数据控件中单击 ,即可下载相应的文件。此操作也是链接到浏览文件信息的页面本身(Main.aspx),通过传递参数type=down操作。 
private void FileDownload(string FullFileName) 
    {  FileInfo DownloadFile = new FileInfo(FullFileName); 
        Response.Clear(); 
        Response.ClearHeaders(); 
        Response.Buffer = false; 
        Response.ContentType = "application/octet-stream"; 
        Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(DownloadFile.FullName, System.Text.Encoding.UTF8)); 
        Response.AppendHeader("Content-Length", DownloadFile.Length.ToString()); 
        Response.WriteFile(DownloadFile.FullName); 
        Response.Flush(); 
        Response.End(); 
    } 
六、上传文件 
上传文件是用户操作网络硬盘的必备功能,都是通过File控件实现。此项目支持多文件上传,通过动态加载File控件实现。关键在于如何遍历页面上的File控件,通过Request.Files.Count可获取页面上的File控件的数量,然后调用HttpPostedFile类中的SaveAs方法完成上传,其界面如图2所示。 
 
  
 
图2 上传文件界面 
实现代码如下: 
<script language="javascript" type="text/javascript">        
        function addFile() 
        {      var filebutton = '<br><input type="file" size="50" name="File"  />'; 
            document.getElementById('FileList').insertAdjacentHTML("beforeEnd",filebutton);  } 
    </script> 
…… 
    <input type="button" value="增加上载文件"  onclick="addFile()" /> 
…… 
protected void SureBtn_Click(object sender, EventArgs e) 
    {   string theDir = Request.QueryString["thedir"]; 
        HttpFileCollection fileList = HttpContext.Current.Request.Files; 
        StringBuilder uploadMsg = new StringBuilder("上载的文件如下:" + "<br>"); 
        try { 
            for (int i = 0; i < fileList.Count; i++) 
            {   HttpPostedFile hPostedFile = fileList[i]; 
                string fileName = Path.GetFileName(hPostedFile.FileName); 
                if (fileName != null) 
                {   if(String.IsNullOrEmpty(Path.GetDirectoryName(theDir))) 
                        hPostedFile.SaveAs(theDir + fileName); //上载文件 
                    else 
                        hPostedFile.SaveAs(theDir +@"/"+ fileName);  
                    uploadMsg.Append("文件名称:" + fileName + "<br>"); 
                } } 
            StatusMsg.Text = uploadMsg.ToString(); //显示上载文件的操作成功消息 
        } 
        catch (Exception ex) 
        { StatusMsg.Text = ex.Message;//显示上载文件的操作失败消息    } 
    } 
七、建立文件夹 
在浏览文件信息的主页面中,单击“创建文件夹”链接,进入创建文件夹页面,如图3所示。 
 
  
 
图3 创建文件夹界面 
System.IO.Directory.CreateDirectory(thepath + foldername); 
八、结语 
通过此项目的实践,可以体会到要编写好程序代码实现相应的功能,应当对.NET的类库的了解和熟悉。从一定意义上讲,.NET早就给我们准备了丰富的类库功能,关键在于我们的发现和应用。同时,就此项目而言,只需稍加修改,就可作为网站的一个模块运用,使网站提供更多的服务。 
  			
				 |