Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WebClient在使用DownloadFile时从文件中剥离换行符_C#_.net_Webclient - Fatal编程技术网

C# WebClient在使用DownloadFile时从文件中剥离换行符

C# WebClient在使用DownloadFile时从文件中剥离换行符,c#,.net,webclient,C#,.net,Webclient,使用此代码下载任何类型的纯文本文件(cpp、txt等),WebClient将从文本文件中剥离换行符。有没有办法强制WebClient将文本文件视为二进制文件?我正在使用相同的WebClient下载许多其他文件,其中大多数不是文本,只有少数 private void button3_Click_1(object sender, EventArgs e) { using (var wc = new GZipWebClient()) {

使用此代码下载任何类型的纯文本文件(cpp、txt等),WebClient将从文本文件中剥离换行符。有没有办法强制WebClient将文本文件视为二进制文件?我正在使用相同的WebClient下载许多其他文件,其中大多数不是文本,只有少数

    private void button3_Click_1(object sender, EventArgs e)
    {
        using (var wc = new GZipWebClient())
        {
            wc.Headers["Accept-Encoding"] = "gzip,deflate";
            wc.DownloadFile(@"link", "test.txt");
        }
    }

    class GZipWebClient : WebClient
    {
        protected override WebRequest GetWebRequest(Uri address)
        {
            HttpWebRequest request = (HttpWebRequest)base.GetWebRequest(address);
            request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
            return request;
        }
    }

我想您正在记事本中查看下载的文件。请尝试其他编辑器。

网络客户端正在从文本文件中剥离换行符
不,它没有。我会惊讶地发现它正在这样做。我的猜测是,原始源代码没有您的操作系统所期望的那种换行符…请使用Fiddler验证WebClient是否确实正常运行。然后,看看别处。我在Windows上使用FileZilla进行FTP传输。我在记事本中编写了测试文件,然后尝试将其作为二进制文件发送。这保留了新行。然后我尝试了自动传输设置,当我再次下载时,它缺少换行符。我猜FileZilla将新行更改为Unix,然后WebClient保留了这一行,因此在记事本中查看它时,该文件仍然有Unix结尾