最近下载了一个多线程断线续传的源代码来看
内置的下载路径是这样
this.TextBox1.Text = "http://www.cnblogs.com/Files/MVP33650/MultiThreadDownLoadFile.rar";
可以下载
我尝试把路径改为我电脑里面某个盘的文件路径
this.TextBox1.Text = @"F:\file\下载说明.txt";//绝对路径
this.TextBox1.Text =Server.MapPath(@"file/下载说明.txt");//虚拟路径
2个方式都出错,显示{"无法将类型为“System.Net.FileWebRequest”的对象强制转换为类型“System.Net.HttpWebRequest”。"}
貌似意思是不能把文件路径转换为http路径..无奈之下,我把路径写成这样
this.TextBox1.Text = @"http:\localhost\dl\file\下载说明.txt";
结果调试发现代码到这里就不动了hwrp = (HttpWebResponse)hwrq.GetResponse();//获得internet返回的资源谁人知道...如何才可以让这个代码服务器里面的绝对路径或者虚拟路径里面的文件,而不是只能写一个别人网站的路径才可以下载....

解决方案 »

  1.   

    补充一下....最后那个测试.路径里的http写少了一个\,改成http:\\就可以下载了..但是问题是第二个测试,那2个写法,,应该怎么改才可以...
      

  2.   

    Server.MapPath(".") 
    Server.MapPath("") 
    Server.MapPath("File.txt") 
    Server.MapPath("~/File.txt") 
    Server.MapPath("../File.txt") 
    Server.MapPath("/") 
    在这两个目录下,我们来进行操作.下面是Server.MapPath根据几种参数产生出来的效果.
    @"G:\Test" 当前页面的虚拟目录 
    @"G:\Test" 当前页面的虚拟目录 
    @"G:\Test\File.txt" 和页面同层的路径 
    @"G:\Test\File.txt" 和页面同层的路径 
    @"C:\Inetpub\wwwroot\File.txt" 根目录下的文件 
    @"C:\Inetpub\wwwroot\" 根目录 
      

  3.   

    回2楼,只要TextBox1.Text不是http开头的,都会报错...
      

  4.   

    不能直接下载服务器磁盘上的数据。。要发布后才能下载
    楼主可以把药下载的文件夹发布到IIS,所以必须加http
      

  5.   

    webform?  写你电脑的路径能下下来就怪了。
      

  6.   

    我已经部署上去IIS的了,我自己做服务器,想试试下载其他盘里的文件试试...所以.就写绝对路径了