成都网站建设设计

将想法与焦点和您一起共享

C#保存远程文件到本地

/// 
/// 保存远程文件到本地
/// 
/// 远程文件URL
/// 保存的本地路径
/// 
public bool DownloadFile(string url, string file)
{
    try
    {
        (new System.Net.WebClient()).DownloadFile(url,file);
        return true;
    }
    catch { }

    return false;
}

public void Download(string strURL,string strName)
    {
        string strRootDir = "D:\\DownLoadRecode";
        if (!Directory.Exists(strRootDir))
        {
            Directory.CreateDirectory(strRootDir);
        }
        WebClient client = new WebClient();
        string strFileName = string.Empty;
        string strFileDir = string.Empty;
        string strSavePath = string.Empty;
        string[] arrName = strName.Split('/');
        if (arrName != null && arrName.Length > 1)
        {
            strFileDir = arrName[0];
            strFileName = arrName[1];
            strSavePath = strRootDir + "\\" + strFileDir;
            if (!Directory.Exists(strSavePath))
            {
                Directory.CreateDirectory(strSavePath);
            }
        }
        else
        {
            strFileName = strName;
            strSavePath = strRootDir + "\\Temp";
            if (!Directory.Exists(strSavePath))
            {
                Directory.CreateDirectory(strSavePath);
            }
        }
        strSavePath += "\\" + strFileName;
        if (!File.Exists(strSavePath))
        {
            client.DownloadFile(strURL, strSavePath);
        }        

        FileInfo xFileInfo = new FileInfo(strSavePath);
        Response.Clear();    //清除缓冲区流中的所有内容输出
        Response.ClearHeaders();    //清除缓冲区中的所有头
        Response.Buffer = false;    //设置缓冲输出为 false
        //设置输出流的 HTTP MIME 类型为 application/octet-stream
        Response.ContentType = "audio/x-wav";
        Response.Charset = "GB2312";
        Response.ContentEncoding = Encoding.UTF8;
        //将 HTTP 头添加到输出流
        Response.AppendHeader("Content-Disposition",
                                    "p_w_upload;filename=" + HttpUtility.UrlEncode(strFileName));
        Response.AppendHeader("Content-Length", xFileInfo.Length.ToString());
        //将指定的字符直接写入HTTP内容输出流        
        Response.WriteFile(strSavePath);
        Response.Flush();
        Response.End();
    }

新闻名称:C#保存远程文件到本地
本文来源:http://chengdu.cdxwcx.cn/article/gjcipp.html