你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 计算机安全与维护
6.8 网络硬盘的C#设计与实现(下)
 

} }

四、删除文件

在浏览信息的GridView数据控件中单击 ,即可删除相应的文件及文件夹。此操作是链接到浏览文件信息的页面本身(Main.aspx),通过传递typesignthedir 3个参数,其中type参数表示当前所要执行的操作,其值为deletebrowserdown之一;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早就给我们准备了丰富的类库功能,关键在于我们的发现和应用。同时,就此项目而言,只需稍加修改,就可作为网站的一个模块运用,使网站提供更多的服务。

 

  推荐精品文章

·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089