C#--简单文件下载器

 class Program
    {
        static void Main(string[] args)
        {
            //创建一个要下载的路径
            WebRequest req = WebRequest.Create("http://static.cnblogs.com/images/adminlogo.gif");
            //响应图片的信息
            using(WebResponse res = req.GetResponse())
            //拿到图片的流
            using(Stream InStream = res.GetResponseStream())
            //拷贝到本地路径
            using(Stream OutStream = new FileStream(@"C:\Users\Administrator\Desktop\C#OOP练习\2.png",FileMode.Create))
            {
                Copy(InStream, OutStream);
            }
            Console.WriteLine("拷贝完成!");
        }

        //封装Copy方法
        static void Copy(Stream InStream, Stream OutStream, int Size)
        {
            byte[]bytes = new byte[Size];
            int len = 0;
            while((len = InStream.Read(bytes,0,bytes.Length))>0)
            {
                OutStream.Write(bytes, 0, len);
            }
        }
        //Copy方法重载
        static void Copy(Stream InStream,Stream OutStream)
        {
            Copy(InStream,OutStream,1024*1024);
        }
    }

 CopyTo: 文件拷贝方法

 class Program
    {
        static void Main(string[] args)
        {
            //创建一个要下载的路径
            WebRequest req = WebRequest.Create("http://static.cnblogs.com/images/adminlogo.gif");
            //响应图片的信息
            using(WebResponse res = req.GetResponse())
            //拿到图片的流
            using(Stream InStream = res.GetResponseStream())
            //拷贝到本地路径
            using(Stream OutStream = new FileStream(@"C:\Users\Administrator\Desktop\C#OOP练习\2.png",FileMode.Create))
            {
                InStream.CopyTo(OutStream);
            }
            Console.WriteLine("拷贝完成!");
        }

        //封装Copy方法
        static void Copy(Stream InStream, Stream OutStream, int Size)
        {
            byte[]bytes = new byte[Size];
            int len = 0;
            while((len = InStream.Read(bytes,0,bytes.Length))>0)
            {
                OutStream.Write(bytes, 0, len);
            }
        }
        //Copy方法重载
        static void Copy(Stream InStream,Stream OutStream)
        {
            Copy(InStream,OutStream,1024*1024);
        }
    }
时间: 2024-08-30 16:18:21

C#--简单文件下载器的相关文章

Android多线程文件下载器

本应用实现的是输入文件的网络的地址,点击按钮开始下载,下载过程中有进度条和后面的文本提示进度, 下载过程中按钮不可点击,防止重复的下载,下载完毕后会进行Toast的提示显示, 并且回复按钮的可点击性,进度条也会清空,当然如果下载中途结束应用进程就会进行进度的保存, 下次下载同样的文件时就会从进度记录进行下载,节省流量和时间 应用需要的应用权限: 访问网络权限 <uses-permission android:name="android.permission.INTERNET"/&

使用IntentService给自己的Android应用写一个文件下载器。

接着上一篇的http://www.cnblogs.com/zhengxt/p/3657833.html,当我们想给自己的APP写一个文件下载器时,可以用重写IntentService来实现. 使用IntentService有几个好处,IntentService继承于Service,适合拿来处理一些耗时又不需要去管它的任务.把要执行的任务用Intent加入到队列中,IntentService会有一个工作线程来取出队列中的Intent来处理.需要实现抽象方法onHandleIntent方法来执行这些

Unity3D 更新文件下载器

使用说明: 1)远端更新服务器目录 Package |----list.txt |----a.bundle |----b.bundle 2)list.txt是更新列表文件 格式是 a.bundle|res/a.bundle b.bundle|res/b.bundle (a.bundle是要拼的url,res/a.bundle是要被写在cache的路径) 3)使用代码 var downloader = gameObject.GetComponent<PatchFileDownloader>();

windows简单调试器源码2700行左右代码

简单调试器项目中on开头的函数为接收系统的调试事件并做相应的处理,简单调试器实现过程中主要的调试事件为异常事件,相应的处理函数为DispatchException. 在异常事件中访问异常.int3异常.单步异常是跟实现调试器功能密切相关的异常事件,这里用三个函数分别处理三个函数分别为OnExceptionAccess.OnExceptionBreakPoint.OnExceptionSingleStep. 异常处理函数中如果为调试器自己设置的异常程序就会停下来接收用户输入等待下一步处理,相应的用

php简单文件管理器——php经典实例

<html> <head> <title>文件管理</title> <meta charset='utf-8' /> </head> <body> <?php //定义要查看的目录 $dir="/"; //先判断$_GET['a']是否已经传值 防止NOTICE错误 if(isset($_GET['a'])){ //选择判断要执行的操作 switch($_GET['a']){ case 'crea

可视化作业——简单播放器的更新

本次我对之前的简单播放器进行了功能上的更新,主要加入了两个功能 1.能够播放在线音乐 2.可以将音乐缓存到本地 1.在编辑第一个功能的时候,我借鉴了很多,包括微软文档(https://msdn.microsoft.com/en-us/library/windows/apps/mt187272.aspx),其他同学的博客等等.而我的第一个版本的代码是这样的 private void TxtFilePath_KeyUp(object sender, KeyRoutedEventArgs e) { i

SST-超级简单任务调度器结构分析

SST(Super Simple Task) 是一个基于任务优先级.抢占式.事件驱动.RTC.单堆栈的超级简单任务调度器,它基于Rober Ward一篇论文的思想,Miro Samek用C重新编程实现的,它是QP中QK的的基本思想. QK加上状态机事件处理的方法QEP,再加上任务的注册与事件的保存与分发功能QF,再加上串口调试功能QSpy,再加上基于模型驱动的开发QM,就成了QP. 2015年,QP获得“嵌入式计算设计”顶级发明奖[1]. 1.SST层次结构 ? 2.SST总体结构 ? 发送事件

使用OpenCV滑动条写成的简单调色器,实时输出RGB值

好久没有写博客了,最近在看OpenCV,于是动手写了个简单的RGB调色器,在终端实时输出RGB的值.通过这个程序学习滑动条的使用.程序中主要用到cvCreateTrackbar ,其用法如下: cvCreateTrackbar 创建trackbar并将它添加到指定的窗口. CV_EXTERN_C_FUNCPTR( void (*CvTrackbarCallback)(int pos) ); int cvCreateTrackbar( const char* trackbar_name, cons

简单拨号器(Android)

感受: 1.了解了intent中的action和Uri. 2.了解了向下一个活动传递数据. 3.了解了内容提供器. 4.了解自定义适配器. 4.其实T9拨号器和简单计算器原理一样. 代码: MainActivity: package com.example.contactstest; import java.util.ArrayList; import java.util.List; import android.os.Bundle; import android.provider.Contac