<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_会游泳dě鱼</title><subtitle type="text">   做一只会游泳的鱼，自由自在地淌洋在水的世界</subtitle><id>http://feed.cnblogs.com/blog/u/54268/rss</id><updated>2011-07-25T03:23:45Z</updated><author><name>会游泳dě鱼</name><uri>http://www.cnblogs.com/skyado/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/skyado/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/54268/rss"/><entry><id>http://www.cnblogs.com/skyado/archive/2011/07/25/2115987.html</id><title type="text">用C#实现HTTP协议下的多线程文件传输</title><summary type="text">很多人都有过使用网络蚂蚁或网络快车软件下载互联网文件的经历，这些软件的使用可以大大加速互联网上文件的传输速度，减少文件传输的时间。这些软件为什么有如此大的魔力呢？其主要原因是这些软件都采用了多线程下载和断点续传技术。如果我们自己来编写一个类似这样的程序，也能够快速的在互联网上下载文件，那一定是非常愉快的事情。下面我就讲一讲如何利用C#语言编写一个支持多线程下载文件的程序，你会看到利用C#语言编写网络应程序是多么的容易，从中也能体会到C#语言中强大的网络功能。 首先介绍一下HTTP协议，HTTP亦即Hpyer Text Transfer Protocal的缩写，它是现代互联网上最重要的一种网络协</summary><published>2011-07-25T03:24:00Z</published><updated>2011-07-25T03:24:00Z</updated><author><name>会游泳dě鱼</name><uri>http://www.cnblogs.com/skyado/</uri></author><link rel="alternate" href="http://www.cnblogs.com/skyado/archive/2011/07/25/2115987.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/skyado/archive/2011/07/25/2115987.html"/><content type="html">&lt;div&gt;&lt;span style="color: #515357; font-family: Arial, sans-serif; font-size: 12px; line-height: normal; "&gt;&lt;p style="font-family: Arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #515357; font-weight: normal; font-size: 1em; line-height: 16px; "&gt;很多人都有过使用网络蚂蚁或网络快车软件下载互联网文件的经历，这些软件的使用可以大大加速互联网上文件的传输速度，减少文件传输的时间。这些软件为什么有如此大的魔力呢？其主要原因是这些软件都采用了多线程下载和断点续传技术。如果我们自己来编写一个类似这样的程序，也能够快速的在互联网上下载文件，那一定是非常愉快的事情。下面我就讲一讲如何利用C#语言编写一个支持多线程下载文件的程序，你会看到利用C#语言编写网络应程序是多么的容易，从中也能体会到C#语言中强大的网络功能。&lt;/p&gt;&lt;p style="font-family: Arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #515357; font-weight: normal; font-size: 1em; line-height: 16px; "&gt;首先介绍一下HTTP协议，HTTP亦即Hpyer Text Transfer Protocal的缩写，它是现代互联网上最重要的一种网络协议，超文本传输协议位于TCP/IP协议的应用层，是一个面向无连接、简单、快速的C/S结构的协议。HTTP的工作过程大体上分连接、请求、响应和断开连接四个步骤。C#语言对HTTP协议提供了良好的支持，在.NET类库中提供了WebRequest和WebResponse类，这两个类都包含在System.Net命名空间中，利用这两个类可以实现很多高级的网络功能，本文中多线程文件下载就是利用这两个类实现的。 WebRequest和WebResponse都是抽象基类，因此在程序中不能直接作为对象使用，必须被继承，实际使用中，可根据URI参数中的URI前缀选用它们合适的子类，对于HTTP这类URI,HttpWebRequest和HttpWebResponse类可以用于处理客户程序同WEB服务器之间的HTTP通讯。&lt;/p&gt;&lt;p style="font-family: Arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #515357; font-weight: normal; font-size: 1em; line-height: 16px; "&gt;HttpWebRequest类实现了很多通过HTTP访问WEB服务器上文件的高级功能。HttpWebRequest类对WebRequest中定义的属性和方法提供支持，HttpWebRequest将发送到Internet资源的公共HTTP标头的值公开为属性，由方法或系统设置，常用的由属性或方法设置的HTTP标头为：接受, 由Accept属性设置, 连接, 由Connection属性和KeepAlive属性设置, Content-Length, 由ContentLength属性设置, Content-Type, 由ContentType属性设置, 范围, 由AddRange方法设置. 实际使用中是将标头信息正确设置后,传递到WEB服务器,WEB服务器根据要求作出回应。&lt;/p&gt;&lt;p style="font-family: Arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #515357; font-weight: normal; font-size: 1em; line-height: 16px; "&gt;HttpWebResponse类继承自WebResponse类，专门处理从WEB服务器返回的HTTP响应，这个类实现了很多方法，具有很多属性，可以全面处理接收到的互联网信息。在HttpWebResponse类中，对于大多数通用的HTTP标头字段，都有独立的属性与其对应，程序员可以通过这些属性方便的访问位于HTTP接收报文标头字段中的信息，本例中用到的HttpWebResponse类属性为：ContentLength 既接收内容的长度。&lt;/p&gt;&lt;p style="font-family: Arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #515357; font-weight: normal; font-size: 1em; line-height: 16px; "&gt;有了以上的了解后，下面看看这两个类的用法，要创建HttpWebRequest对象，不要直接使用HttpWebRequest的构造函数，而要使用WebRequest.Create方法初始化一个HttpWebRequest实例，如：&lt;/p&gt;&lt;p style="font-family: Arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #515357; font-weight: normal; font-size: 1em; line-height: 16px; "&gt;HttpWebRequest hwr=(HttpWebRequest)WebRequest.Create(http://www.163.com/);&lt;/p&gt;&lt;p style="font-family: Arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #515357; font-weight: normal; font-size: 1em; line-height: 16px; "&gt;创建了这个对象后，就可以通过HttpWebRequest属性，设置很多HTTP标头字段的内容,如hwr.AddRange(100,1000);设置接收对象的范围为100-1000字节。&lt;/p&gt;&lt;p style="font-family: Arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #515357; font-weight: normal; font-size: 1em; line-height: 16px; "&gt;HttpWebReques对象使用GetResponse()方法时，会返回一个HttpWebResponse对象，为提出HTTP返回报文信息，需要使用HttpWebResponse的GetResponseStream()方法，该方法返回一个Stream对象，可以读取HTTP返回的报文，如：首先定义一个Strean 对象 public System.IO.Stream ns; 然后 ns=hwr.GetResponse ().GetResponseStream ();即可创建Stream对象。有了以上的准备知识后下面开始设计我们的多线程互联网文件的下载程序，首先打开Visual Studio.Net集成开发环境，选择&amp;#8220;文件&amp;#8221;、&amp;#8220;新建&amp;#8221;、&amp;#8220;项目&amp;#8221;，然后选择&amp;#8220;Visual C#项目&amp;#8221;，在向导右边列表框中选中&amp;#8220;Windows应用程序&amp;#8221;，输入项目名称，如本例为：httpftp,然后选择&amp;#8220;确定&amp;#8221;按钮，向导自动生成了一个Windows应用程序项目。首先打开窗口设计器设计应用程序窗口，增加如下控件：&lt;/p&gt;&lt;p style="font-family: Arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #515357; font-weight: normal; font-size: 1em; line-height: 16px; "&gt;一个列表框 listBox1 三个文本标签 label1-label3 三个文本框 textBox1-textBox3 一个开始接收按钮 button1 设计好的窗口如下图：&lt;/p&gt;&lt;p style="font-family: Arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #515357; font-weight: normal; font-size: 1em; line-height: 16px; "&gt;控件定义代码是：&lt;/p&gt;&lt;p style="font-family: Arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #515357; font-weight: normal; font-size: 1em; line-height: 16px; "&gt;public System.Windows.Forms.ListBox listBox1;&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;private System.Windows.Forms.Label label1;&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;private System.Windows.Forms.TextBox textBox1&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;private System.Windows.Forms.Button button1;&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;private System.Windows.Forms.Label label2;&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;private System.Windows.Forms.TextBox textBox2;&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;private System.Windows.Forms.Label label3;&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;private System.Windows.Forms.TextBox textBox3;&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;private System.Windows.Forms.Label label4;&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;private System.Windows.Forms.TextBox textBox4;&lt;/p&gt;&lt;p style="font-family: Arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #515357; font-weight: normal; font-size: 1em; line-height: 16px; "&gt;打开Form1的代码编辑器，增加如下的命名空间：&lt;/p&gt;&lt;p style="font-family: Arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #515357; font-weight: normal; font-size: 1em; line-height: 16px; "&gt;using System.Net;//网络功能&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;using System.IO;//流支持&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;using System.Threading ;//线程支持&lt;/p&gt;&lt;p style="font-family: Arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #515357; font-weight: normal; font-size: 1em; line-height: 16px; "&gt;增加如下的程序变量：&lt;/p&gt;&lt;p style="font-family: Arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #515357; font-weight: normal; font-size: 1em; line-height: 16px; "&gt;public bool[] threadw; //每个线程结束标志&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;public string[] filenamew;//每个线程接收文件的文件名&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;public int[] filestartw;//每个线程接收文件的起始位置&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;public int[] filesizew;//每个线程接收文件的大小&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;public string strurl;//接受文件的URL&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;public bool hb;//文件合并标志&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;public int thread;//进程数&lt;/p&gt;&lt;p style="font-family: Arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #515357; font-weight: normal; font-size: 1em; line-height: 16px; "&gt;定义一个HttpFile类，用于管理接收线程，其代码如下：&lt;/p&gt;&lt;p style="font-family: Arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #515357; font-weight: normal; font-size: 1em; line-height: 16px; "&gt;public class HttpFile&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;{&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　public Form1 formm;&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　public int threadh;//线程代号&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　public string filename;//文件名&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　public string strUrl;//接收文件的URL&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　public FileStream fs;&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　public HttpWebRequest request;&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　public System.IO.Stream ns;&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　public byte[] nbytes;//接收缓冲区&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　public int nreadsize;//接收字节数&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　public HttpFile(Form1 form,int thread)//构造方法&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　{&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　formm=form;&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　threadh=thread;&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　}&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　~HttpFile()//析构方法&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　{&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　formm.Dispose ();&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　}&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　public void receive()//接收线程&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　{&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　filename=formm.filenamew[threadh];&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　strUrl=formm.strurl;&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　ns=null;&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　nbytes= new byte[512];&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　nreadsize=0;&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　formm.listBox1 .Items .Add ("线程"+threadh.ToString ()+"开始接收");&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　fs=new FileStream (filename,System.IO.FileMode.Create);&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　try&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　{&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　　request=(HttpWebRequest)HttpWebRequest.Create (strUrl);&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　　//接收的起始位置及接收的长度&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　　request.AddRange(formm.filestartw [threadh],&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　　formm.filestartw [threadh]+formm.filesizew [threadh]);&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　　ns=request.GetResponse ().GetResponseStream ();//获得接收流&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　　nreadsize=ns.Read (nbytes,0,512);&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　　while (nreadsize&amp;gt;0)&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　　{&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　　　fs.Write (nbytes,0,nreadsize);&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　　　nreadsize=ns.Read (nbytes,0,512);&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　　　formm.listBox1 .Items .Add ("线程"+threadh.ToString ()+"正在接收");&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　　}&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　　fs.Close();&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　　ns.Close ();&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　}&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　catch (Exception er)&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　{&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　　MessageBox.Show (er.Message );&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　　fs.Close();&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　}&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　formm.listBox1 .Items.Add ("进程"+threadh.ToString ()+"接收完毕!");&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　formm.threadw[threadh]=true;&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　}&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;}&lt;/p&gt;&lt;p style="font-family: Arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #515357; font-weight: normal; font-size: 1em; line-height: 16px; "&gt;该类和Form1类处于统一命名空间，但不包含在Form1类中。下面定义&amp;#8220;开始接收&amp;#8221;按钮控件的事件响应函数：&lt;/p&gt;&lt;p style="font-family: Arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #515357; font-weight: normal; font-size: 1em; line-height: 16px; "&gt;private void button1_Click(object sender, System.EventArgs e)&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;{&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　DateTime dt=DateTime.Now;//开始接收时间&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　textBox1.Text =dt.ToString ();&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　strurl=textBox2.Text .Trim ().ToString ();&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　HttpWebRequest request;&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　long filesize=0;&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　try&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　{&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　request=(HttpWebRequest)HttpWebRequest.Create (strurl);&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　filesize=request.GetResponse ().ContentLength;//取得目标文件的长度&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　request.Abort ();&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　}&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　catch (Exception er)&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　{&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　MessageBox.Show (er.Message );&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　}&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　// 接收线程数&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　thread=Convert.ToInt32 (textBox4.Text .Trim().ToString (),10);&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　//根据线程数初始化数组&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　threadw=new bool [thread];&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　filenamew=new string [thread];&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　filestartw=new int [thread];&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　filesizew=new int[thread];&lt;/p&gt;&lt;p style="font-family: Arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #515357; font-weight: normal; font-size: 1em; line-height: 16px; "&gt;//计算每个线程应该接收文件的大小&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　int filethread=(int)filesize/thread;//平均分配&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　int filethreade=filethread+(int)filesize%thread;//剩余部分由最后一个线程完成&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　//为数组赋值&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　for (int i=0;i&amp;lt;thread;i++)&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　{&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　threadw[i]=false;//每个线程状态的初始值为假&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　filenamew[i]=i.ToString ()+".dat";//每个线程接收文件的临时文件名&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　if (i&amp;lt;thread-1)&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　{&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　　filestartw[i]=filethread*i;//每个线程接收文件的起始点&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　　filesizew[i]=filethread-1;//每个线程接收文件的长度&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　}&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　else&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　{&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　　filestartw[i]=filethread*i;&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　　filesizew[i]=filethreade-1;&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　}&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　}&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　//定义线程数组，启动接收线程&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　Thread[] threadk=new Thread [thread];&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　HttpFile[] httpfile=new HttpFile [thread];&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　for (int j=0;j&amp;lt;thread;j++)&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　{&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　httpfile[j]=new HttpFile(this,j);&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　threadk[j]=new Thread(new ThreadStart (httpfile[j].receive ));&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　threadk[j].Start ();&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　}&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　//启动合并各线程接收的文件线程&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　Thread hbth=new Thread (new ThreadStart (hbfile));&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　hbth.Start ();&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;}&lt;/p&gt;&lt;p style="font-family: Arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #515357; font-weight: normal; font-size: 1em; line-height: 16px; "&gt;合并文件的线程hbfile定义在Form1类中,定义如下：&lt;/p&gt;&lt;p style="font-family: Arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #515357; font-weight: normal; font-size: 1em; line-height: 16px; "&gt;public void hbfile()&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;{&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　while (true)//等待&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　{&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　hb=true;&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　for (int i=0;i&amp;lt;thread;i++)&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　{&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　　if (threadw[i]==false)//有未结束线程，等待&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　　{&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　　　hb=false;&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　　　Thread.Sleep (100);&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　　　break;&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　　}&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　}&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　if (hb==true)//所有线程均已结束，停止等待，&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　{&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　　break;&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　}&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　}&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　FileStream fs;//开始合并&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　FileStream fstemp;&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　int readfile;&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　byte[] bytes=new byte[512];&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　fs=new FileStream (textBox3.Text .Trim ().ToString (),System.IO.FileMode.Create);&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　for (int k=0;k0)&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　　{&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　　　fs.Write (bytes,0,readfile);&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　　}&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　　else&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　　{&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　　　break;&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　　}&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　}&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　　fstemp.Close ();&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　}&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　fs.Close ();&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　DateTime dt=DateTime.Now;&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　textBox1.Text =dt.ToString ();//结束时间&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;　MessageBox.Show ("接收完毕!!!");&lt;br style="font-family: arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;}&lt;/p&gt;&lt;p style="font-family: Arial, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #515357; font-weight: normal; font-size: 1em; line-height: 16px; "&gt;至此，一个多线程下载文件的程序就大功告成了，注意在输入本地文件名时，应按如下格式输入：&amp;#8220;c:\\test\\httpftp\\bin\\d.htm&amp;#8221;，因&amp;#8221;\&amp;#8221;后的字符在C#中是转义字符，线程数并非越大越好，一般5个线程就可以了，该程序在Visual Studio.Net 2002开发环境及Windows xp 操作系统上通过。&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/skyado/aggbug/2115987.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/skyado/archive/2011/07/25/2115987.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/skyado/archive/2010/09/11/1823959.html</id><title type="text">网页打印的常用方式【一】</title><summary type="text">在网页系统里面，经常需要打印，套打功能，除了使用.net 封装好的Microsoft.Office.Interop.Word.dll,还可以采用js打印，在网页里定义一个WebBrowser对象 如下：&amp;lt;object id="WebBrowser" height="0" width="0" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2...</summary><published>2010-09-11T06:54:00Z</published><updated>2010-09-11T06:54:00Z</updated><author><name>会游泳dě鱼</name><uri>http://www.cnblogs.com/skyado/</uri></author><link rel="alternate" href="http://www.cnblogs.com/skyado/archive/2010/09/11/1823959.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/skyado/archive/2010/09/11/1823959.html"/><content type="html">&lt;p&gt;在网页系统里面，经常需要打印，套打功能，除了使用.net 封装好的Microsoft.Office.Interop.Word.dll,还可以采用js&amp;nbsp;打印，在网页里定义一个WebBrowser对象 如下：&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;object id="WebBrowser" height="0" width="0" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/object&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在Head里面定义一段打印js：如下：&lt;/p&gt;&#xD;
&lt;p&gt;function printInfo()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var HKEY_Root,HKEY_Path,HKEY_Key; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HKEY_Root="HKEY_CURRENT_USER"; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HKEY_Path="\\&lt;a href="http://www.cnblogs.com/skyado/admin/file:////Microsoft//Internet"&gt;software\\Microsoft\\Internet&lt;/a&gt; Explorer\\PageSetup\\"; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var Wsh = new&amp;nbsp; ActiveXObject("WScript.Shell"); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HKEY_Key="margin_top"; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"0.3"); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HKEY_Key="margin_bottom"; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"0"); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HKEY_Key="margin_left";&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"0.5");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HKEY_Key="margin_right"; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"0");&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.all.WebBrowser.ExecWB(6,6);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; window.close();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch(e){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alert(e);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;现在只需在Body的OnLoad事件里执行：&amp;lt;body lang="zh-cn" style=" text-align:center;tab-interval:21.0pt;text-justify-trim:punctuation"&amp;nbsp; onload="printInfo()" &amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;如果是打印预览可以调用&lt;/p&gt;&#xD;
&lt;p&gt;function review(){&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.all.WebBrowser.ExecWB(7,1);&lt;br /&gt;&amp;nbsp;window.close()&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;这样就实现了js调打印机的功能，以后会有更多的方法打印，敬请关注！&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/skyado/aggbug/1823959.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/skyado/archive/2010/09/11/1823959.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/skyado/archive/2010/09/10/1823490.html</id><title type="text">Asp.Net调用打印机</title><summary type="text">我们先引用Microsoft.Office.Interop.Word,object fileNames = HttpContext.Current.Request.MapPath("..") + @"\images\ApplyReport1.dot"; object saveFileName = HttpContext.Current.Request.MapPath("..") + @"\imag...</summary><published>2010-09-10T09:20:00Z</published><updated>2010-09-10T09:20:00Z</updated><author><name>会游泳dě鱼</name><uri>http://www.cnblogs.com/skyado/</uri></author><link rel="alternate" href="http://www.cnblogs.com/skyado/archive/2010/09/10/1823490.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/skyado/archive/2010/09/10/1823490.html"/><content type="html">&lt;p&gt;&lt;span style="color: #00ccff; font-size: 14pt"&gt;我们先引用&lt;/span&gt;&lt;strong style="color: #00ccff; font-size: 14pt"&gt;Microsoft.Office.Interop.Word&lt;/strong&gt;&lt;span style="color: #00ccff; font-size: 14pt"&gt;,&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;object fileNames = HttpContext.Current.Request.MapPath("..") + @"\images\ApplyReport1.dot";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; object saveFileName = HttpContext.Current.Request.MapPath("..") + @"\images\ApplyReport1.doc";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Word.ApplicationClass oWordApp = new Word.ApplicationClass();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; object readOnly = false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; object isVisible = true;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; object missing = System.Reflection.Missing.Value;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; object oTemplate = "D:\\BankrollApplyReport1.dot";&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;Word.Document oWordDoc = oWordApp.Documents.Add(ref oTemplate, ref readOnly, ref readOnly, ref isVisible);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oWordDoc.Activate();&lt;/p&gt;&#xD;
&lt;p&gt;////object oBookMark = "";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ////oWordDoc.Bookmarks.get_Item(ref oBookMark).Range.Text = "3333";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ////oBookMark = "ApplyUnitName";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ////oWordDoc.Bookmarks.get_Item(ref oBookMark).Range.Text = "开发单位";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dictionary&amp;lt;string,string&amp;gt; ReportDic=new Dictionary&amp;lt;string,string&amp;gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ReportDic.Add("BarCode","20200202");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ReportDic.Add("ApplyUnitName","开发单位");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetBookMark(ref oWordDoc,ReportDic);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Object background = true;&lt;/p&gt;&#xD;
&lt;p&gt;Object append = Type.Missing;&lt;/p&gt;&#xD;
&lt;p&gt;Object range = Microsoft.Office.Interop.Word.WdPrintOutRange.wdPrintAllDocument;&lt;/p&gt;&#xD;
&lt;p&gt;Object outputFileName = Type.Missing;&lt;/p&gt;&#xD;
&lt;p&gt;Object from = Type.Missing;&lt;/p&gt;&#xD;
&lt;p&gt;Object to = Type.Missing;&lt;/p&gt;&#xD;
&lt;p&gt;Object item = Microsoft.Office.Interop.Word.WdPrintOutItem.wdPrintDocumentContent;&lt;/p&gt;&#xD;
&lt;p&gt;Object copies= 1;&lt;/p&gt;&#xD;
&lt;p&gt;Object pages = "";&lt;/p&gt;&#xD;
&lt;p&gt;Object pageType = Microsoft.Office.Interop.Word.WdPrintOutPages.wdPrintAllPages;&lt;/p&gt;&#xD;
&lt;p&gt;Object printToFile = false;&lt;/p&gt;&#xD;
&lt;p&gt;Object collate = true;&lt;/p&gt;&#xD;
&lt;p&gt;Object fileName = "";&lt;/p&gt;&#xD;
&lt;p&gt;Object activePrinterMacGX = Type.Missing;&lt;/p&gt;&#xD;
&lt;p&gt;Object manualDuplexPrint = false; &lt;/p&gt;&#xD;
&lt;p&gt;Object printZoomColumn = 0;&lt;/p&gt;&#xD;
&lt;p&gt;Object printZoomRow = 0;&lt;/p&gt;&#xD;
&lt;p&gt;Object printZoomPaperWidth = 0;&lt;/p&gt;&#xD;
&lt;p&gt;Object printZoomPaperHeight = 0;&lt;/p&gt;&#xD;
&lt;p&gt;//oWordDoc.Application.ActivePrinter = &lt;a&gt;\\\\Jupitor\\HP550&lt;/a&gt; on Ne03:;&lt;/p&gt;&#xD;
&lt;p&gt;oWordDoc.PrintOut(ref background, ref append,&lt;/p&gt;&#xD;
&lt;p&gt;ref range, ref outputFileName, ref from, ref to,&lt;/p&gt;&#xD;
&lt;p&gt;ref item, ref copies, ref pages, ref pageType,&lt;/p&gt;&#xD;
&lt;p&gt;ref printToFile, ref collate, ref activePrinterMacGX,&lt;/p&gt;&#xD;
&lt;p&gt;ref manualDuplexPrint, ref printZoomColumn, &lt;/p&gt;&#xD;
&lt;p&gt;ref printZoomRow, ref printZoomPaperWidth, ref printZoomPaperHeight);&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #00ccff; font-size: 14pt"&gt;因为模板书签定义好了，我们需要赋值，采用字典循环&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;protected void SetBookMark(ref&amp;nbsp; Word.Document oWordDoc, Dictionary&amp;lt;string, string&amp;gt; dicField)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (var dic in dicField)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; object bookMark = (object)dic.Key;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (oWordDoc.Bookmarks.get_Item(ref bookMark) != null)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oWordDoc.Bookmarks.get_Item(ref bookMark).Range.Text = dic.Value;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/skyado/aggbug/1823490.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/skyado/archive/2010/09/10/1823490.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/skyado/archive/2010/09/10/1823132.html</id><title type="text">Asp.Net程序编辑Word文档以及在数据库中的保存和显示</title><summary type="text">一，首先引用Microsoft Word 11.0 Object Library到项目里。 我们在某个目录下面有一个我们需要编辑的模板，里面带有书签。只要将书签替换一下就可以了。 Word.ApplicationClass oWordApp = new Word.ApplicationClass(); object fileName = @"D:\12.doc"; object readOnly ...</summary><published>2010-09-10T03:45:00Z</published><updated>2010-09-10T03:45:00Z</updated><author><name>会游泳dě鱼</name><uri>http://www.cnblogs.com/skyado/</uri></author><link rel="alternate" href="http://www.cnblogs.com/skyado/archive/2010/09/10/1823132.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/skyado/archive/2010/09/10/1823132.html"/><content type="html">&lt;p&gt;一，&lt;span style="color: #3366ff; font-size: 18pt"&gt;首先引用Microsoft Word 11.0 Object Library到项目里。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;我们在某个目录下面有一个我们需要编辑的模板，里面带有书签。只要将书签替换一下就可以了。&lt;/p&gt;&#xD;
&lt;p&gt;Word.ApplicationClass oWordApp = new Word.ApplicationClass();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; object fileName = @"D:\12.doc";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; object readOnly = false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; object isVisible = true;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; object missing = System.Reflection.Missing.Value;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;protected void WordApp()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Word.Document oWordDoc = oWordApp.Documents.Open(ref fileName, ref missing, ref readOnly,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ref missing, ref missing, ref missing,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ref missing, ref missing, ref missing,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ref missing, ref missing, ref isVisible,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ref missing, ref missing, ref missing,ref missing);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oWordDoc.Activate();&lt;/p&gt;&#xD;
&lt;p&gt;object oBookMark = "BarCode";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oWordDoc.Bookmarks.get_Item(ref oBookMark).Range.Text = "2010090909";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oBookMark = "ApplyUnitName";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oWordDoc.Bookmarks.get_Item(ref oBookMark).Range.Text = "开发单位";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //foreach (Word.Bookmark bm in oWordDoc.Bookmarks)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp;&amp;nbsp;&amp;nbsp; if (bm.Name == "BarCode")&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bm.Select();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bm.Range.Text = "2008";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //oWordApp.Selection.TypeText("hello");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //oWordApp.Selection.TypeParagraph();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Model.ReceivingManage.HouseRegReceivingItem m_HouseRegReceivingItem = new Model.ReceivingManage.HouseRegReceivingItem();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_HouseRegReceivingItem.BussinessId = 100;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_HouseRegReceivingItem.TableName = "ABC";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; object isSave = false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; object &lt;a href='&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#116;&amp;#111;&amp;#58;&amp;#115;&amp;#97;&amp;#118;&amp;#101;&amp;#70;&amp;#105;&amp;#108;&amp;#101;&amp;#78;&amp;#97;&amp;#109;&amp;#101;&amp;#61;&amp;#64;&amp;#34;&amp;#68;&amp;#58;&amp;#92;&amp;#97;&amp;#97;&amp;#97;&amp;#97;&amp;#46;&amp;#100;&amp;#111;&amp;#99;'&gt;saveFileName=@"D:\aaaa.doc&lt;/a&gt;";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oWordDoc.SaveAs(ref saveFileName, ref missing, ref missing, ref missing,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ref missing, ref missing, ref missing, ref missing,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ref missing, ref missing, ref missing, ref missing,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ref missing, ref missing, ref missing, ref missing);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oWordApp.Application.Quit(ref missing, ref missing, ref missing);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FileInfo fileInfo=new FileInfo(saveFileName.ToString());&lt;/p&gt;&#xD;
&lt;p&gt;FileStream fs= File.Open(saveFileName.ToString(), FileMode.Open);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] buffer =new byte[fs.Length];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fs.Read(buffer, 0, buffer.Length);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_HouseRegReceivingItem.FileName = "wwww";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_HouseRegReceivingItem.ContentType="application/octet-stream";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fs.Close();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_HouseRegReceivingItem.FileContent=buffer;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (Bussiness.ReceivingManage.HouseRegReceivingItemB.Add(m_HouseRegReceivingItem).IsSuccess)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; File.Delete(saveFileName.ToString());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw new Exception("");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;这样就将编辑后的内容保存到数据库去了。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #3366ff; font-size: 18pt"&gt;二，下面是从数据库读取显示的事情，&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SqlConnection conn = new SqlConnection(Util.SqlHelper.ConnectionString);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; conn.Open();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Result result = new Result();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SqlTransaction sqlTrans = conn.BeginTransaction();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Model.ReceivingManage.HouseRegReceivingItem m_HouseRegReceivingItem = null;&lt;/p&gt;&#xD;
&lt;p&gt;try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_HouseRegReceivingItem = DBAccess.ReceivingManage.HouseRegReceivingItemD.GetModel(sqlTrans,m_HouseRegReceivingItemId);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (m_HouseRegReceivingItem ==null)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw new Exception("读取失败！");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] Doc = m_HouseRegReceivingItem.FileContent;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; page.Response.Clear();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; page.Response.Buffer = true;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; page.Response.Charset = "GB2312";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Encoding gb2312=System.Text.Encoding.GetEncoding("GB2312");&amp;nbsp;//防止了乱码出现&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; page.Response.ContentEncoding = gb2312;//设置输出流为简体中文 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; page.Response.ContentType = m_HouseRegReceivingItem.ContentType;// "application/ms-word";//设置输出文件类型为word文件。 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string FileName = m_HouseRegReceivingItem.FileName;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FileName = System.Web.HttpUtility.UrlEncode(FileName, gb2312);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; page.Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, gb2312));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; page.Response.BinaryWrite(Doc);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; page.Response.Flush();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; page.Response.End();&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (Exception ex)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result.Msg = ex.Message;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result.IsSuccess = false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sqlTrans.Rollback();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw ex;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; finally&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (conn.State == ConnectionState.Open)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; conn.Close();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sqlTrans.Dispose();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; conn.Dispose();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return result;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/skyado/aggbug/1823132.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/skyado/archive/2010/09/10/1823132.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/skyado/archive/2010/09/09/1821929.html</id><title type="text">【网络转载】Asp.net使用XPath实现一个简单的RSS阅读器</title><summary type="text">本文利用XmlDocument和XPath实现一个简单的RSS阅读器的逻辑，大家都知道，RSS内容，实际就是一个XML文档。前台的ASPX页面内容后台的CS代码一个简单的逻辑，呵呵。</summary><published>2010-09-09T00:42:00Z</published><updated>2010-09-09T00:42:00Z</updated><author><name>会游泳dě鱼</name><uri>http://www.cnblogs.com/skyado/</uri></author><link rel="alternate" href="http://www.cnblogs.com/skyado/archive/2010/09/09/1821929.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/skyado/archive/2010/09/09/1821929.html"/><content type="html">&lt;p&gt;本文利用XmlDocument和XPath实现一个简单的RSS阅读器的逻辑，大家都知道，RSS内容，实际就是一个XML文档。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;前台的ASPX页面内容&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;div style="padding-bottom: 15px; background-color: #000" &gt;&lt;pre&gt;&lt;span style="color: white"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #ffa44d"&gt;p&lt;/span&gt;&lt;span style="color: white"&gt;&amp;gt;&#xD;
    &lt;/span&gt;&lt;span style="color: #eef9dc"&gt;请输入RSS的URL地址：&#xD;
    &lt;/span&gt;&lt;span style="color: white"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #ffa44d"&gt;asp&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;:&lt;/span&gt;&lt;span style="color: #ffa44d"&gt;TextBox &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;ID&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"RssUrl" &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;runat&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"server" &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;Columns&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"40"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #ffa44d"&gt;asp&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;:&lt;/span&gt;&lt;span style="color: #ffa44d"&gt;TextBox&lt;/span&gt;&lt;span style="color: white"&gt;&amp;gt;&#xD;
    &amp;amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #ffa44d"&gt;asp&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;:&lt;/span&gt;&lt;span style="color: #ffa44d"&gt;Button &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;ID&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"Button1" &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;runat&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"server" &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;Text&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"加载"&#xD;
        &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;onclick&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"Button1_Click" /&amp;gt;&#xD;
&amp;lt;/&lt;/span&gt;&lt;span style="color: #ffa44d"&gt;p&lt;/span&gt;&lt;span style="color: white"&gt;&amp;gt;&#xD;
&amp;lt;&lt;/span&gt;&lt;span style="color: #ffa44d"&gt;asp&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;:&lt;/span&gt;&lt;span style="color: #ffa44d"&gt;GridView &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;ID&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"GridView1" &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;runat&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"server" &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;AutoGenerateColumns&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"False" &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;CellPadding&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"4"&#xD;
    &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;ForeColor&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"#333333" &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;GridLines&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"Horizontal" &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;ShowHeader&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"False"&amp;gt;&#xD;
    &amp;lt;&lt;/span&gt;&lt;span style="color: #ffa44d"&gt;AlternatingRowStyle &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;BackColor&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"White" /&amp;gt;&#xD;
    &amp;lt;&lt;/span&gt;&lt;span style="color: #ffa44d"&gt;Columns&lt;/span&gt;&lt;span style="color: white"&gt;&amp;gt;&#xD;
        &amp;lt;&lt;/span&gt;&lt;span style="color: #ffa44d"&gt;asp&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;:&lt;/span&gt;&lt;span style="color: #ffa44d"&gt;TemplateField&lt;/span&gt;&lt;span style="color: white"&gt;&amp;gt;&#xD;
            &amp;lt;&lt;/span&gt;&lt;span style="color: #ffa44d"&gt;ItemTemplate&lt;/span&gt;&lt;span style="color: white"&gt;&amp;gt;&#xD;
                &amp;lt;&lt;/span&gt;&lt;span style="color: #ffa44d"&gt;asp&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;:&lt;/span&gt;&lt;span style="color: #ffa44d"&gt;HyperLink &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;Target&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"_frame" &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;ID&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"HyperLink1" &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;runat&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"server" &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;NavigateUrl&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;'&lt;/span&gt;&lt;span style="color: #858585"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color: white"&gt;# &lt;/span&gt;&lt;span style="color: #eef9dc"&gt;Eval("link") &lt;/span&gt;&lt;span style="color: #858585"&gt;%&amp;gt;&lt;/span&gt;&lt;span style="color: white"&gt;'&#xD;
                    &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;Text&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;'&lt;/span&gt;&lt;span style="color: #858585"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color: white"&gt;# &lt;/span&gt;&lt;span style="color: #eef9dc"&gt;Eval("title") &lt;/span&gt;&lt;span style="color: #858585"&gt;%&amp;gt;&lt;/span&gt;&lt;span style="color: white"&gt;'&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #ffa44d"&gt;asp&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;:&lt;/span&gt;&lt;span style="color: #ffa44d"&gt;HyperLink&lt;/span&gt;&lt;span style="color: white"&gt;&amp;gt;&#xD;
            &amp;lt;/&lt;/span&gt;&lt;span style="color: #ffa44d"&gt;ItemTemplate&lt;/span&gt;&lt;span style="color: white"&gt;&amp;gt;&#xD;
        &amp;lt;/&lt;/span&gt;&lt;span style="color: #ffa44d"&gt;asp&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;:&lt;/span&gt;&lt;span style="color: #ffa44d"&gt;TemplateField&lt;/span&gt;&lt;span style="color: white"&gt;&amp;gt;&#xD;
    &amp;lt;/&lt;/span&gt;&lt;span style="color: #ffa44d"&gt;Columns&lt;/span&gt;&lt;span style="color: white"&gt;&amp;gt;&#xD;
    &amp;lt;&lt;/span&gt;&lt;span style="color: #ffa44d"&gt;EditRowStyle &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;BackColor&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"#2461BF" /&amp;gt;&#xD;
    &amp;lt;&lt;/span&gt;&lt;span style="color: #ffa44d"&gt;FooterStyle &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;BackColor&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"#507CD1" &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;Font-Bold&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"True" &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;ForeColor&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"White" /&amp;gt;&#xD;
    &amp;lt;&lt;/span&gt;&lt;span style="color: #ffa44d"&gt;HeaderStyle &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;BackColor&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"#507CD1" &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;Font-Bold&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"True" &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;ForeColor&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"White" /&amp;gt;&#xD;
    &amp;lt;&lt;/span&gt;&lt;span style="color: #ffa44d"&gt;PagerStyle &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;BackColor&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"#2461BF" &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;ForeColor&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"White" &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;HorizontalAlign&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"Center" /&amp;gt;&#xD;
    &amp;lt;&lt;/span&gt;&lt;span style="color: #ffa44d"&gt;RowStyle &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;BackColor&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"#EFF3FB" /&amp;gt;&#xD;
    &amp;lt;&lt;/span&gt;&lt;span style="color: #ffa44d"&gt;SelectedRowStyle &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;BackColor&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"#D1DDF1" &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;Font-Bold&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"True" &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;ForeColor&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"#333333" /&amp;gt;&#xD;
    &amp;lt;&lt;/span&gt;&lt;span style="color: #ffa44d"&gt;SortedAscendingCellStyle &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;BackColor&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"#F5F7FB" /&amp;gt;&#xD;
    &amp;lt;&lt;/span&gt;&lt;span style="color: #ffa44d"&gt;SortedAscendingHeaderStyle &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;BackColor&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"#6D95E1" /&amp;gt;&#xD;
    &amp;lt;&lt;/span&gt;&lt;span style="color: #ffa44d"&gt;SortedDescendingCellStyle &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;BackColor&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"#E9EBEF" /&amp;gt;&#xD;
    &amp;lt;&lt;/span&gt;&lt;span style="color: #ffa44d"&gt;SortedDescendingHeaderStyle &lt;/span&gt;&lt;span style="color: #52f1fe"&gt;BackColor&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;=&lt;/span&gt;&lt;span style="color: white"&gt;"#4870BE" /&amp;gt;&#xD;
&amp;lt;/&lt;/span&gt;&lt;span style="color: #ffa44d"&gt;asp&lt;/span&gt;&lt;span style="color: #fdf7ce"&gt;:&lt;/span&gt;&lt;span style="color: #ffa44d"&gt;GridView&lt;/span&gt;&lt;span style="color: white"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&lt;p&gt;后台的CS代码&lt;/p&gt;&#xD;
&lt;div style="padding-bottom: 0px; background-color: #000" &gt;&lt;pre&gt;&lt;span style="color: #9dbb44"&gt;XmlDocument &lt;/span&gt;&lt;span style="color: #cdff9b"&gt;xml &lt;/span&gt;&lt;span style="color: white"&gt;= &lt;/span&gt;&lt;span style="color: #abfe52"&gt;new &lt;/span&gt;&lt;span style="color: #9dbb44"&gt;XmlDocument&lt;/span&gt;&lt;span style="color: #eef9dc"&gt;();&#xD;
&lt;/span&gt;&lt;span style="color: #cdff9b"&gt;xml&lt;/span&gt;&lt;span style="color: white"&gt;.&lt;/span&gt;&lt;span style="color: #cdff9b"&gt;Load&lt;/span&gt;&lt;span style="color: #eef9dc"&gt;(&lt;/span&gt;&lt;span style="color: #abfe52"&gt;this&lt;/span&gt;&lt;span style="color: white"&gt;.&lt;/span&gt;&lt;span style="color: #cdff9b"&gt;RssUrl&lt;/span&gt;&lt;span style="color: white"&gt;.&lt;/span&gt;&lt;span style="color: #cdff9b"&gt;Text&lt;/span&gt;&lt;span style="color: #eef9dc"&gt;);&#xD;
&lt;/span&gt;&lt;span style="color: #9dbb44"&gt;XmlNodeList &lt;/span&gt;&lt;span style="color: #cdff9b"&gt;nodes &lt;/span&gt;&lt;span style="color: white"&gt;= &lt;/span&gt;&lt;span style="color: #cdff9b"&gt;xml&lt;/span&gt;&lt;span style="color: white"&gt;.&lt;/span&gt;&lt;span style="color: #cdff9b"&gt;SelectNodes&lt;/span&gt;&lt;span style="color: #eef9dc"&gt;(&lt;/span&gt;&lt;span style="color: white"&gt;"rss/channel/item"&lt;/span&gt;&lt;span style="color: #eef9dc"&gt;);&#xD;
&lt;/span&gt;&lt;span style="color: #9dbb44"&gt;DataSet &lt;/span&gt;&lt;span style="color: #cdff9b"&gt;ds &lt;/span&gt;&lt;span style="color: white"&gt;= &lt;/span&gt;&lt;span style="color: #abfe52"&gt;new &lt;/span&gt;&lt;span style="color: #9dbb44"&gt;DataSet&lt;/span&gt;&lt;span style="color: #eef9dc"&gt;();&#xD;
&lt;/span&gt;&lt;span style="color: #abfe52"&gt;foreach &lt;/span&gt;&lt;span style="color: #eef9dc"&gt;(&lt;/span&gt;&lt;span style="color: #9dbb44"&gt;XmlNode &lt;/span&gt;&lt;span style="color: #cdff9b"&gt;node &lt;/span&gt;&lt;span style="color: #abfe52"&gt;in &lt;/span&gt;&lt;span style="color: #cdff9b"&gt;nodes&lt;/span&gt;&lt;span style="color: #eef9dc"&gt;)&#xD;
{&#xD;
    &lt;/span&gt;&lt;span style="color: #cdff9b"&gt;ds&lt;/span&gt;&lt;span style="color: white"&gt;.&lt;/span&gt;&lt;span style="color: #cdff9b"&gt;ReadXml&lt;/span&gt;&lt;span style="color: #eef9dc"&gt;(&lt;/span&gt;&lt;span style="color: #abfe52"&gt;new &lt;/span&gt;&lt;span style="color: #9dbb44"&gt;XmlNodeReader&lt;/span&gt;&lt;span style="color: #eef9dc"&gt;(&lt;/span&gt;&lt;span style="color: #cdff9b"&gt;node&lt;/span&gt;&lt;span style="color: #eef9dc"&gt;), &lt;/span&gt;&lt;span style="color: #2bb3b3"&gt;XmlReadMode&lt;/span&gt;&lt;span style="color: white"&gt;.&lt;/span&gt;&lt;span style="color: #cdff9b"&gt;Auto&lt;/span&gt;&lt;span style="color: #eef9dc"&gt;);&#xD;
}&#xD;
&lt;/span&gt;&lt;span style="color: #abfe52"&gt;this&lt;/span&gt;&lt;span style="color: white"&gt;.&lt;/span&gt;&lt;span style="color: #cdff9b"&gt;GridView1&lt;/span&gt;&lt;span style="color: white"&gt;.&lt;/span&gt;&lt;span style="color: #cdff9b"&gt;DataSource &lt;/span&gt;&lt;span style="color: white"&gt;= &lt;/span&gt;&lt;span style="color: #cdff9b"&gt;ds&lt;/span&gt;&lt;span style="color: white"&gt;.&lt;/span&gt;&lt;span style="color: #cdff9b"&gt;Tables&lt;/span&gt;&lt;span style="color: #eef9dc"&gt;[&lt;/span&gt;&lt;span style="color: white"&gt;0&lt;/span&gt;&lt;span style="color: #eef9dc"&gt;];&#xD;
&lt;/span&gt;&lt;span style="color: #abfe52"&gt;this&lt;/span&gt;&lt;span style="color: white"&gt;.&lt;/span&gt;&lt;span style="color: #cdff9b"&gt;GridView1&lt;/span&gt;&lt;span style="color: white"&gt;.&lt;/span&gt;&lt;span style="color: #cdff9b"&gt;DataBind&lt;/span&gt;&lt;span style="color: #eef9dc"&gt;();&#xD;
&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&#xD;
&lt;p&gt;一个简单的逻辑，呵呵。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/skyado/aggbug/1821929.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/skyado/archive/2010/09/09/1821929.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/skyado/archive/2010/08/28/1810715.html</id><title type="text">Jquery上传图片，xml方式显示图片【2】</title><summary type="text">二，显示也是调用新的窗体：　　 ShowHanlder = " parent.ShowUrl('" + ShowImgUrl + "','查看图片',750,620,false); "; CS代码： int BussinessTypeId = CommonClass.GetIntQueryString("BussinessTypeId"); int BussinessId = CommonClas...</summary><published>2010-08-28T03:10:00Z</published><updated>2010-08-28T03:10:00Z</updated><author><name>会游泳dě鱼</name><uri>http://www.cnblogs.com/skyado/</uri></author><link rel="alternate" href="http://www.cnblogs.com/skyado/archive/2010/08/28/1810715.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/skyado/archive/2010/08/28/1810715.html"/><content type="html">该文被密码保护。</content></entry><entry><id>http://www.cnblogs.com/skyado/archive/2010/08/28/1810712.html</id><title type="text">Jquery上传图片，xml方式显示图片【1】</title><summary type="text">一，　这里采用了网络上的上传组件，&amp;lt;link href="JS/jquery.uploadify-v2.1.0/example/css/default.css" rel="stylesheet" type="text/css" /&amp;gt; &amp;lt;link href="JS/jquery.uploadify-v2.1.0/uploadify.css" rel="stylesheet" typ...</summary><published>2010-08-28T03:06:00Z</published><updated>2010-08-28T03:06:00Z</updated><author><name>会游泳dě鱼</name><uri>http://www.cnblogs.com/skyado/</uri></author><link rel="alternate" href="http://www.cnblogs.com/skyado/archive/2010/08/28/1810712.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/skyado/archive/2010/08/28/1810712.html"/><content type="html">&lt;p&gt;一，　这里采用了网络上的上传组件，&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;link href="JS/jquery.uploadify-v2.1.0/example/css/default.css" rel="stylesheet"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; type="text/css" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;link href="JS/jquery.uploadify-v2.1.0/uploadify.css" rel="stylesheet" type="text/css" /&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;script type="text/javascript" src="JS/jquery.uploadify-v2.1.0/jquery-1.3.2.min.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;script type="text/javascript" src="JS/jquery.uploadify-v2.1.0/swfobject.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;script type="text/javascript" src="JS/jquery.uploadify-v2.1.0/jquery.uploadify.v2.1.0.min.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(document).ready(function()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $("#uploadify").uploadify({&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'uploader': 'JS/jquery.uploadify-v2.1.0/uploadify.swf',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'script': 'UploadHandler.ashx',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'cancelImg': 'JS/jquery.uploadify-v2.1.0/cancel.png',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'folder': 'UploadFile$&amp;lt;%=paramsArray %&amp;gt;',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'queueID': 'fileQueue',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'auto': false,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'multi': true&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/script&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;table &amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td colspan="3"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div id="fileQueue" style="border: none;"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td &amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type="file"  style="background-image: none;" name="uploadify"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; id="uploadify" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td &amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input id="Button1" type="button"  onclick="javascript:$('#uploadify').uploadifyUpload()"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value="上&amp;nbsp;&amp;nbsp; 传" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td &amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input id="Button2"  type="button" onclick="javascript:$('#uploadify').uploadifyClearQueue()"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value="取消上传" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/table&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;因为是页面跳转，所以我url传参，本系统采用Coolite Ext框架：&lt;/p&gt;&#xD;
&lt;p&gt;在主页面&lt;/p&gt;&#xD;
&lt;p&gt;paramsArray = "BussinessTypeId:" + this.M_BankrollApplyReg.Id + "$BussinessId:" + this.M_BankrollApplyReg.Id + "$TableName:BankrollApplyReg";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ShowImgUrl = "DepositManage/ReceiveShowPage.aspx?BussinessTypeId=" + this.M_BankrollApplyReg.Id + "&amp;amp;BussinessId=" + this.M_BankrollApplyReg.Id + "&amp;amp;TableName=BankrollApplyReg";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ShowHanlder = " parent.ShowUrl('" + ShowImgUrl + "','查看图片',750,620,false); ";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; btn_ShowFile.Listeners.Click.Handler = ShowHanlder;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; btn_UploadFile.Listeners.Click.Handler = " parent.ShowUrl('UploadFile.aspx?paramsArray=" + paramsArray + "','上传图片',450,450,false); ";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.btn_UploadFile.Visible = true;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.btn_ShowFile.Visible = true;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;调用了父窗体的方法：&lt;/p&gt;&#xD;
&lt;p&gt;var ShowUrl=function(_url,_title,_width,_height,_resizable)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var TempWin=new Ext.Window({&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;title:_title,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;width:_width,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;height:_height,&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;plain:true,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;layout:"form",&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;iconCls:"addicon",&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;//不可以随意改变大小&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;resizable:_resizable,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;//是否可以拖动&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;//draggable:false,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;defaultType:"textfield",&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;labelWidth:100,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;collapsible:true, //允许缩放条&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; closeAction : 'hide',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; closable:true,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //弹出模态窗体&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;modal: 'true', &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;buttonAlign:"center",&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;bodyStyle:"padding:10px 0 0 15px",&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; html:'&amp;lt;iframe id="iframeA" scrolling="auto" frameborder="0" width="100%" height="100%" src="'+_url+'"&amp;gt;&amp;lt;/iframe&amp;gt;' &lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;});&lt;br /&gt;&amp;nbsp;TempWin.show();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&#xD;
&lt;p&gt;上传页面：&lt;/p&gt;&#xD;
&lt;p&gt;paramsArray = Util.CommonClass.GetStringQueryString("paramsArray");&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;上传的时候调用Handler： UploadHandler.ashx&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;context.Response.ContentType = "text/plain";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; context.Response.Charset = "utf-8";&lt;/p&gt;&#xD;
&lt;p&gt;HttpPostedFile file = context.Request.Files["Filedata"];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string[] paramsArrays = context.Request["folder"].Split('$');&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string uploadPath =&amp;nbsp; HttpContext.Current.Server.MapPath(paramsArrays[0]) + "\\";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Model.ReceivingManage.HouseRegReceivingItem m_HouseRegReceivingItem = new Model.ReceivingManage.HouseRegReceivingItem();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Reflection.PropertyInfo[] m_PropertyInfos = m_HouseRegReceivingItem.GetType().GetProperties();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 1; i &amp;lt; paramsArrays.Length; i++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int j = 0; j &amp;lt; m_PropertyInfos.Length; j++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string[] para = paramsArrays[i].Split(':');&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (para.Length &amp;gt; 1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (para[0].Equals(m_PropertyInfos[j].Name))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_PropertyInfos[j].SetValue(m_HouseRegReceivingItem, Convert.ChangeType(para[1], m_PropertyInfos[j].PropertyType), null);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (file != null)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!Directory.Exists(uploadPath))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Directory.CreateDirectory(uploadPath);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; file.SaveAs(uploadPath + file.FileName);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_HouseRegReceivingItem.FileName = System.IO.Path.GetFileName(file.FileName);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_HouseRegReceivingItem.ContentType = file.ContentType;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Stream sm = file.InputStream;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] fileContent =new byte[sm.Length];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sm.Read(fileContent,0,fileContent.Length);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sm.Close();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_HouseRegReceivingItem.FileContent = fileContent;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_HouseRegReceivingItem.CreateTime = DateTime.Now;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!Bussiness.ReceivingManage.HouseRegReceivingItemB.Add(m_HouseRegReceivingItem).IsSuccess)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw new Exception("上传失败！"); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //下面这句代码缺少的话，上传成功后上传队列的显示不会自动消失&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; context.Response.Write("1");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; context.Response.Write("0");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;这样就实现了图片上传！&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/skyado/aggbug/1810712.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/skyado/archive/2010/08/28/1810712.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/skyado/archive/2010/08/28/1810604.html</id><title type="text">基于jquery的实现简单的表格中增加或删除下一行</title><summary type="text">html 复制代码 代码如下:&amp;lt;div&amp;gt; &amp;lt;table&amp;gt; &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1111&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;input type="button" value="添加下一行" /&amp;gt;&amp;lt;input type="button" value="删除下一行" /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &amp;lt;t...</summary><published>2010-08-27T17:01:00Z</published><updated>2010-08-27T17:01:00Z</updated><author><name>会游泳dě鱼</name><uri>http://www.cnblogs.com/skyado/</uri></author><link rel="alternate" href="http://www.cnblogs.com/skyado/archive/2010/08/28/1810604.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/skyado/archive/2010/08/28/1810604.html"/><content type="html">&lt;p&gt;html &lt;br /&gt;复制代码 代码如下:&lt;br /&gt;&amp;lt;div&amp;gt; &lt;br /&gt;&amp;lt;table&amp;gt; &lt;br /&gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1111&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;input type="button" value="添加下一行" /&amp;gt;&amp;lt;input type="button" value="删除下一行" /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;2222&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;input type="button" value="添加下一行" /&amp;gt;&amp;lt;input type="button" value="删除下一行" /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;4444&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;input type="button" value="添加下一行" /&amp;gt;&amp;lt;input type="button" value="删除下一行" /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt; &lt;br /&gt;&amp;lt;/table&amp;gt; &lt;br /&gt;&amp;lt;/div&amp;gt; &lt;/p&gt;&#xD;
&lt;p&gt;jquery代码: &lt;br /&gt;复制代码 代码如下:&lt;br /&gt;&amp;lt;script type="text/javascript" src="Scripts/jquery-1.4.1.js"&amp;gt;&amp;lt;/script&amp;gt; &lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt; &lt;br /&gt;$(document).ready(function () { &lt;br /&gt;ModifyClick(); &lt;br /&gt;}); &lt;br /&gt;function ModifyClick() { &lt;br /&gt;$("table tr input[type='button'] ").each(function () { &lt;br /&gt;$(this).unbind("click"); &lt;br /&gt;$(this).bind("click", function () { &lt;br /&gt;if ($(this).val() == "添加下一行") { &lt;br /&gt;$(this).parent().parent().after("&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Add&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;input onclick=\"ModifyClick()\" type=button value=\"添加下一行\" /&amp;gt;&amp;lt;input onclick=\"ModifyClick()\" type=button value=\"删除下一行\" /&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;"); &lt;br /&gt;} &lt;br /&gt;if ($(this).val() == "删除下一行") { &lt;br /&gt;$(this).parent().parent().next().eq(0).remove(); &lt;br /&gt;} &lt;br /&gt;}); &lt;br /&gt;}); &lt;br /&gt;} &lt;br /&gt;&amp;lt;/script&amp;gt; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/skyado/aggbug/1810604.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/skyado/archive/2010/08/28/1810604.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/skyado/archive/2010/06/05/1752171.html</id><title type="text">文件处理</title><summary type="text">using System;using System.IO;using System.Collections;using System.Collections.Generic;using System.Configuration;using System.Data;using System.Linq;using System.Web;using System.Web.Security;using S...</summary><published>2010-06-05T03:51:00Z</published><updated>2010-06-05T03:51:00Z</updated><author><name>会游泳dě鱼</name><uri>http://www.cnblogs.com/skyado/</uri></author><link rel="alternate" href="http://www.cnblogs.com/skyado/archive/2010/06/05/1752171.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/skyado/archive/2010/06/05/1752171.html"/><content type="html">该文被密码保护。</content></entry><entry><id>http://www.cnblogs.com/skyado/archive/2010/03/10/1682140.html</id><title type="text">C#版ftp方法实现类库代码</title><summary type="text">最近要做个MP3搜索，并自动ftp上传的程序，找来找去发现了这个ftp方法的类库不错，发上来给大家共享共享。/*FTPFactory.csBetter view with tab space=4Written by Jaimon Mathew (jaimonmathew@rediffmail.com)Rolander,Dan (Dan.Rolander@marriott.com) has modi...</summary><published>2010-03-09T17:22:00Z</published><updated>2010-03-09T17:22:00Z</updated><author><name>会游泳dě鱼</name><uri>http://www.cnblogs.com/skyado/</uri></author><link rel="alternate" href="http://www.cnblogs.com/skyado/archive/2010/03/10/1682140.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/skyado/archive/2010/03/10/1682140.html"/><content type="html">&lt;p&gt;&lt;br /&gt;最近要做个MP3搜索，并自动ftp上传的程序，找来找去发现了这个ftp方法的类库不错，发上来给大家共享共享。&lt;br /&gt;/*&lt;/p&gt;&#xD;
&lt;p&gt;FTPFactory.cs&lt;/p&gt;&#xD;
&lt;p&gt;Better view with tab space=4&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Written by Jaimon Mathew (&lt;a href="&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#116;&amp;#111;&amp;#58;&amp;#106;&amp;#97;&amp;#105;&amp;#109;&amp;#111;&amp;#110;&amp;#109;&amp;#97;&amp;#116;&amp;#104;&amp;#101;&amp;#119;&amp;#64;&amp;#114;&amp;#101;&amp;#100;&amp;#105;&amp;#102;&amp;#102;&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#46;&amp;#99;&amp;#111;&amp;#109;" target="_blank"&gt;jaimonmathew@rediffmail.com&lt;/a&gt;)&lt;/p&gt;&#xD;
&lt;p&gt;Rolander,Dan (&lt;a href="&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#116;&amp;#111;&amp;#58;&amp;#68;&amp;#97;&amp;#110;&amp;#46;&amp;#82;&amp;#111;&amp;#108;&amp;#97;&amp;#110;&amp;#100;&amp;#101;&amp;#114;&amp;#64;&amp;#109;&amp;#97;&amp;#114;&amp;#114;&amp;#105;&amp;#111;&amp;#116;&amp;#116;&amp;#46;&amp;#99;&amp;#111;&amp;#109;" target="_blank"&gt;Dan.Rolander@marriott.com&lt;/a&gt;) has modified the &lt;/p&gt;&#xD;
&lt;p&gt;download&lt;/p&gt;&#xD;
&lt;p&gt;method to cope with file name with path information. He also &lt;/p&gt;&#xD;
&lt;p&gt;provided&lt;/p&gt;&#xD;
&lt;p&gt;the XML comments so that the library provides Intellisense &lt;/p&gt;&#xD;
&lt;p&gt;descriptions.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;use the following line to compile&lt;/p&gt;&#xD;
&lt;p&gt;csc /target:library /out:FTPLib.dll /r:System.DLL FTPFactory.cs&lt;/p&gt;&#xD;
&lt;p&gt;*/&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;using System;&lt;/p&gt;&#xD;
&lt;p&gt;using System.Threading;&lt;/p&gt;&#xD;
&lt;p&gt;using System.Net;&lt;/p&gt;&#xD;
&lt;p&gt;using System.IO;&lt;/p&gt;&#xD;
&lt;p&gt;using System.Text;&lt;/p&gt;&#xD;
&lt;p&gt;using System.Net.Sockets;&lt;/p&gt;&#xD;
&lt;p&gt;using System.Configuration;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;namespace AudioCollect&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;/// &amp;lt;summary&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;/// FTPFactory 的摘要说明。&lt;/p&gt;&#xD;
&lt;p&gt;/// &amp;lt;/summary&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;public class FTPFactory&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;static readonly log4net.ILog log = log4net.LogManager.GetLogger("log4net");&lt;/p&gt;&#xD;
&lt;p&gt;private string &lt;/p&gt;&#xD;
&lt;p&gt;remoteHost,remotePath,remoteUser,remotePass,mes;&lt;/p&gt;&#xD;
&lt;p&gt;private int remotePort,bytes;&lt;/p&gt;&#xD;
&lt;p&gt;private Socket clientSocket;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;private int retValue;&lt;/p&gt;&#xD;
&lt;p&gt;private Boolean debug;&lt;/p&gt;&#xD;
&lt;p&gt;private Boolean logined;&lt;/p&gt;&#xD;
&lt;p&gt;private string reply;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;private static int BLOCK_SIZE = 512;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Byte[] buffer = new Byte[BLOCK_SIZE];&lt;/p&gt;&#xD;
&lt;p&gt;Encoding ASCII = Encoding.ASCII;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;public FTPFactory()&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;string FTPRemoteIP = ConfigurationSettings.AppSettings["FTPRemoteIP"];&lt;/p&gt;&#xD;
&lt;p&gt;int FTPRemotePort = Convert.ToInt32( ConfigurationSettings.AppSettings["FTPRemotePort"] );&lt;/p&gt;&#xD;
&lt;p&gt;string FTPUser = ConfigurationSettings.AppSettings["FTPUser"];&lt;/p&gt;&#xD;
&lt;p&gt;string FTPPassword = ConfigurationSettings.AppSettings["FTPPassword"];&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;remoteHost&amp;nbsp; = FTPRemoteIP;&lt;/p&gt;&#xD;
&lt;p&gt;remotePath&amp;nbsp; = ".";&lt;/p&gt;&#xD;
&lt;p&gt;remoteUser&amp;nbsp; = FTPUser;&lt;/p&gt;&#xD;
&lt;p&gt;remotePass&amp;nbsp; = FTPPassword;&lt;/p&gt;&#xD;
&lt;p&gt;remotePort&amp;nbsp; =FTPRemotePort;&lt;/p&gt;&#xD;
&lt;p&gt;debug&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = false;&lt;/p&gt;&#xD;
&lt;p&gt;logined&amp;nbsp;&amp;nbsp;&amp;nbsp; = false;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;/// Set the name of the FTP server to connect to.&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;/// Server name&lt;/p&gt;&#xD;
&lt;p&gt;public void setRemoteHost(string remoteHost)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;this.remoteHost = remoteHost;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;/// Return the name of the current FTP server.&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;/// Server name&lt;/p&gt;&#xD;
&lt;p&gt;public string getRemoteHost()&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;return remoteHost;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;/// Set the port number to use for FTP.&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;/// Port number&lt;/p&gt;&#xD;
&lt;p&gt;public void setRemotePort(int remotePort)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;this.remotePort = remotePort;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;/// Return the current port number.&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;/// Current port number&lt;/p&gt;&#xD;
&lt;p&gt;public int getRemotePort()&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;return remotePort;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;/// Set the remote directory path.&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;/// The remote directory path&lt;/p&gt;&#xD;
&lt;p&gt;public void setRemotePath(string remotePath)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;this.remotePath = remotePath;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;/// Return the current remote directory path.&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;/// The current remote directory path.&lt;/p&gt;&#xD;
&lt;p&gt;public string getRemotePath()&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;return remotePath;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;/// Set the user name to use for logging into the remote server.&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;/// Username&lt;/p&gt;&#xD;
&lt;p&gt;public void setRemoteUser(string remoteUser)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;this.remoteUser = remoteUser;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;/// Set the password to user for logging into the remote server.&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;/// Password&lt;/p&gt;&#xD;
&lt;p&gt;public void setRemotePass(string remotePass)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;this.remotePass = remotePass;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;/// Return a string array containing the remote directory's file list.&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;public string[] getFileList(string mask)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(!logined)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;login();&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Socket cSocket = createDataSocket();&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;sendCommand("NLST " + mask);&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(!(retValue == 150 || retValue == 125))&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;throw new IOException(reply.Substring(4));&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;mes = "";&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Thread.Sleep(700);&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;while(true)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;if(cSocket.Connected)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;int bytes = cSocket.Receive(buffer, buffer.Length, 0);&lt;/p&gt;&#xD;
&lt;p&gt;mes += ASCII.GetString(buffer, 0, bytes);&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(bytes &amp;lt; buffer.Length)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;break;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;else&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;log.Info("socket 连接断了！");&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;log.Info(mes);&lt;/p&gt;&#xD;
&lt;p&gt;char[] seperator = {'\n'};&lt;/p&gt;&#xD;
&lt;p&gt;string[] mess = mes.Split(seperator);&lt;/p&gt;&#xD;
&lt;p&gt;foreach(string fileName in mess)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;log.Info(fileName);&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;cSocket.Close();&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;readReply();&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(retValue != 226)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;throw new IOException(reply.Substring(4));&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;return mess;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;public string[] getFileList()&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;if(!logined)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;login();&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Socket cSocket = createDataSocket();&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;sendCommand("LIST ");&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(!(retValue == 150 || retValue == 125))&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;throw new IOException(reply.Substring(4));&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;mes = "";&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;while(true)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;int bytes = cSocket.Receive(buffer, buffer.Length, 0);&lt;/p&gt;&#xD;
&lt;p&gt;mes += ASCII.GetString(buffer, 0, bytes);&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(bytes &amp;lt; buffer.Length)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;break;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;log.Info(mes);&lt;/p&gt;&#xD;
&lt;p&gt;char[] seperator = {'\n'};&lt;/p&gt;&#xD;
&lt;p&gt;string[] mess = mes.Split(seperator);&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;cSocket.Close();&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;readReply();&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(retValue != 226)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;throw new IOException(reply.Substring(4));&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;return mess;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;/// Return the size of a file.&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;public long getFileSize(string fileName)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(!logined)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;login();&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;sendCommand("SIZE " + fileName);&lt;/p&gt;&#xD;
&lt;p&gt;long size=0;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(retValue == 213)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;size = Int64.Parse(reply.Substring(4));&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;else&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;throw new IOException(reply.Substring(4));&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;return size;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;/// Login to the remote server.&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;public void login()&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;clientSocket = new &lt;/p&gt;&#xD;
&lt;p&gt;Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;IPEndPoint ep = new &lt;/p&gt;&#xD;
&lt;p&gt;IPEndPoint(Dns.Resolve(remoteHost).AddressList[0], remotePort);&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;try&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;clientSocket.Connect(ep);&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;catch(Exception)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;throw new IOException("Couldn't connect to remote server");&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;readReply();&lt;/p&gt;&#xD;
&lt;p&gt;if(retValue != 220)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;close();&lt;/p&gt;&#xD;
&lt;p&gt;throw new IOException(reply.Substring(4));&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;if(debug)&lt;/p&gt;&#xD;
&lt;p&gt;Console.WriteLine("USER "+remoteUser);&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;sendCommand("USER "+remoteUser);&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if( !(retValue == 331 || retValue == 230) )&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;cleanup();&lt;/p&gt;&#xD;
&lt;p&gt;throw new IOException(reply.Substring(4));&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if( retValue != 230 )&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;if(debug)&lt;/p&gt;&#xD;
&lt;p&gt;Console.WriteLine("PASS xxx");&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;sendCommand("PASS "+remotePass);&lt;/p&gt;&#xD;
&lt;p&gt;if( !(retValue == 230 || retValue == 202) )&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;cleanup();&lt;/p&gt;&#xD;
&lt;p&gt;throw new IOException(reply.Substring(4));&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;logined = true;&lt;/p&gt;&#xD;
&lt;p&gt;Console.WriteLine("Connected to "+remoteHost);&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;chdir(remotePath);&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;/// If the value of mode is true, set binary mode for&amp;nbsp;&amp;nbsp; downloads.&lt;/p&gt;&#xD;
&lt;p&gt;/// Else, set Ascii mode.&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;public void setBinaryMode(Boolean mode)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(mode)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;sendCommand("TYPE I");&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;else&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;sendCommand("TYPE A");&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;if (retValue != 200)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;throw new IOException(reply.Substring(4));&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;/// Download a file to the Assembly's local directory,&lt;/p&gt;&#xD;
&lt;p&gt;/// keeping the same file name.&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;public void download(string remFileName)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;download(remFileName,"",false);&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;/// Download a remote file to the Assembly's local directory,&lt;/p&gt;&#xD;
&lt;p&gt;/// keeping the same file name, and set the resume flag.&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;public void download(string remFileName,Boolean resume)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;download(remFileName,"",resume);&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;/// Download a remote file to a local file name which can&amp;nbsp;&amp;nbsp;&amp;nbsp; include&lt;/p&gt;&#xD;
&lt;p&gt;/// a path. The local file name will be created or overwritten,&lt;/p&gt;&#xD;
&lt;p&gt;/// but the path must exist.&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;public void download(string remFileName,string locFileName)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;download(remFileName,locFileName,false);&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;/// Download a remote file to a local file name which can include&lt;/p&gt;&#xD;
&lt;p&gt;/// a path, and set the resume flag. The local file name will be&lt;/p&gt;&#xD;
&lt;p&gt;/// created or overwritten, but the path must exist.&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;public void download(string remFileName,string &lt;/p&gt;&#xD;
&lt;p&gt;locFileName,Boolean resume)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;if(!logined)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;login();&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;setBinaryMode(false);&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Console.WriteLine("Downloading file "+remFileName+" from "+remoteHost + "//"+remotePath);&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if (locFileName.Equals(""))&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;locFileName = remFileName;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(!File.Exists(locFileName))&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;Stream st = File.Create(locFileName);&lt;/p&gt;&#xD;
&lt;p&gt;st.Close();&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;FileStream output = new &lt;/p&gt;&#xD;
&lt;p&gt;FileStream(locFileName,FileMode.Create);&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Socket cSocket = createDataSocket();&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;long offset = 0;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(resume)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;offset = output.Length;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(offset &amp;gt; 0 )&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;setBinaryMode(false);&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;sendCommand("REST "+offset);&lt;/p&gt;&#xD;
&lt;p&gt;if(retValue != 350)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;//throw new IOException(reply.Substring(4));&lt;/p&gt;&#xD;
&lt;p&gt;//Some servers may not support resuming.&lt;/p&gt;&#xD;
&lt;p&gt;offset = 0;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(offset &amp;gt; 0)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;if(debug)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;Console.WriteLine("seeking to " + offset);&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;long npos = output.Seek(offset,SeekOrigin.Begin);&lt;/p&gt;&#xD;
&lt;p&gt;Console.WriteLine("new pos="+npos);&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;sendCommand("RETR " + remFileName);&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(!(retValue == 150 || retValue == 125))&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;throw new IOException(reply.Substring(4));&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;while(true)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;bytes = cSocket.Receive(buffer, buffer.Length, 0);&lt;/p&gt;&#xD;
&lt;p&gt;output.Write(buffer,0,bytes);&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(bytes &amp;lt;= 0)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;break;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;output.Close();&lt;/p&gt;&#xD;
&lt;p&gt;if (cSocket.Connected)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;cSocket.Close();&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Console.WriteLine("");&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;readReply();&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if( !(retValue == 226 || retValue == 250) )&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;throw new IOException(reply.Substring(4));&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;/// Upload a file.&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;public void upload(string fileName)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;upload(fileName,false);&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;/// Upload a file and set the resume flag.&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;public void upload(string fileName,Boolean resume)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(!logined)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;login();&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Socket cSocket = createDataSocket();&lt;/p&gt;&#xD;
&lt;p&gt;long offset=0;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(resume)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;try&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;setBinaryMode(true);&lt;/p&gt;&#xD;
&lt;p&gt;offset = getFileSize(fileName);&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;catch(Exception)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;offset = 0;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(offset &amp;gt; 0 )&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;sendCommand("REST " + offset);&lt;/p&gt;&#xD;
&lt;p&gt;if(retValue != 350)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;//throw new IOException(reply.Substring(4));&lt;/p&gt;&#xD;
&lt;p&gt;//Remote server may not support resuming.&lt;/p&gt;&#xD;
&lt;p&gt;offset = 0;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;/*==========================*/&lt;/p&gt;&#xD;
&lt;p&gt;sendCommand("STOR "+Path.GetFileName(fileName));&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if( !(retValue == 125 || retValue == 150) )&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;throw new IOException(reply.Substring(4));&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;// open input stream to read source file&lt;/p&gt;&#xD;
&lt;p&gt;FileStream input = new FileStream(fileName,FileMode.Open);&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(offset != 0)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(debug)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;Console.WriteLine("seeking to " + offset);&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;input.Seek(offset,SeekOrigin.Begin);&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Console.WriteLine("Uploading file "+fileName+" to "+remotePath);&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;while ((bytes = input.Read(buffer,0,buffer.Length)) &amp;gt; 0)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;cSocket.Send(buffer, bytes, 0);&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;input.Close();&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Console.WriteLine("");&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if (cSocket.Connected)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;cSocket.Close();&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;readReply();&lt;/p&gt;&#xD;
&lt;p&gt;if( !(retValue == 226 || retValue == 250) )&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;throw new IOException(reply.Substring(4));&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;/// Delete a file from the remote FTP server.&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;public void deleteRemoteFile(string fileName)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(!logined)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;login();&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;sendCommand("DELE "+fileName);&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(retValue != 250)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;throw new IOException(reply.Substring(4));&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;/// Rename a file on the remote FTP server.&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;public void renameRemoteFile(string oldFileName,string &lt;/p&gt;&#xD;
&lt;p&gt;newFileName)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(!logined)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;login();&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;sendCommand("RNFR "+oldFileName);&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(retValue != 350)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;throw new IOException(reply.Substring(4));&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;//&amp;nbsp; known problem&lt;/p&gt;&#xD;
&lt;p&gt;//&amp;nbsp; rnto will not take care of existing file.&lt;/p&gt;&#xD;
&lt;p&gt;//&amp;nbsp; i.e. It will overwrite if newFileName exist&lt;/p&gt;&#xD;
&lt;p&gt;sendCommand("RNTO "+newFileName);&lt;/p&gt;&#xD;
&lt;p&gt;if(retValue != 250)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;throw new IOException(reply.Substring(4));&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;/// Create a directory on the remote FTP server.&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;public void mkdir(string dirName)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(!logined)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;login();&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;sendCommand("MKD "+dirName);&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(retValue != 250)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;throw new IOException(reply.Substring(4));&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;/// Delete a directory on the remote FTP server.&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;public void rmdir(string dirName)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(!logined)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;login();&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;sendCommand("RMD "+dirName);&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(retValue != 250)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;throw new IOException(reply.Substring(4));&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;/// Change the current working directory on the remote FTP&amp;nbsp;&amp;nbsp; server.&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;public void chdir(string dirName)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(dirName.Equals("."))&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;return;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(!logined)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;login();&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;sendCommand("CWD "+dirName);&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(retValue != 250)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;throw new IOException(reply.Substring(4));&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;this.remotePath = dirName;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Console.WriteLine("Current directory is "+remotePath);&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;/// Close the FTP connection.&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;public void close()&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if( clientSocket != null )&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;sendCommand("QUIT");&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;cleanup();&lt;/p&gt;&#xD;
&lt;p&gt;Console.WriteLine("Closing...");&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;/// Set debug mode.&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;///&lt;/p&gt;&#xD;
&lt;p&gt;public void setDebug(Boolean debug)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;this.debug = debug;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;private void readReply()&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;mes = "";&lt;/p&gt;&#xD;
&lt;p&gt;reply = readLine();&lt;/p&gt;&#xD;
&lt;p&gt;retValue = Int32.Parse(reply.Substring(0,3));&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;private void cleanup()&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;if(clientSocket!=null)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;clientSocket.Close();&lt;/p&gt;&#xD;
&lt;p&gt;clientSocket = null;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;logined = false;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;private string readLine()&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;while(true)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;bytes = clientSocket.Receive(buffer, buffer.Length, 0);&lt;/p&gt;&#xD;
&lt;p&gt;mes += ASCII.GetString(buffer, 0, bytes);&lt;/p&gt;&#xD;
&lt;p&gt;if(bytes &amp;lt; buffer.Length)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;break;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;char[] seperator = {'\n'};&lt;/p&gt;&#xD;
&lt;p&gt;string[] mess = mes.Split(seperator);&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(mes.Length &amp;gt; 2)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;mes = mess[mess.Length-2];&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;else&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;mes = mess[0];&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(!mes.Substring(3,1).Equals(" "))&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;return readLine();&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(debug)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;for(int k=0;k &amp;lt; mess.Length-1;k++)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;Console.WriteLine(mess[k]);&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;return mes;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;private void sendCommand(String command)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Byte[] cmdBytes = &lt;/p&gt;&#xD;
&lt;p&gt;Encoding.ASCII.GetBytes((command+"\r\n").ToCharArray());&lt;/p&gt;&#xD;
&lt;p&gt;clientSocket.Send(cmdBytes, cmdBytes.Length, 0);&lt;/p&gt;&#xD;
&lt;p&gt;readReply();&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;private Socket createDataSocket()&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;sendCommand("PASV");&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if(retValue != 227)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;throw new IOException(reply.Substring(4));&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;int index1 = reply.IndexOf('(');&lt;/p&gt;&#xD;
&lt;p&gt;int index2 = reply.IndexOf(')');&lt;/p&gt;&#xD;
&lt;p&gt;string ipData = &lt;/p&gt;&#xD;
&lt;p&gt;reply.Substring(index1+1,index2-index1-1);&lt;/p&gt;&#xD;
&lt;p&gt;int[] parts = new int[6];&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;int len = ipData.Length;&lt;/p&gt;&#xD;
&lt;p&gt;int partCount = 0;&lt;/p&gt;&#xD;
&lt;p&gt;string buf="";&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;for (int i = 0; i &amp;lt; len &amp;amp;&amp;amp; partCount &amp;lt;= 6; i++)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;char ch = Char.Parse(ipData.Substring(i,1));&lt;/p&gt;&#xD;
&lt;p&gt;if (Char.IsDigit(ch))&lt;/p&gt;&#xD;
&lt;p&gt;buf+=ch;&lt;/p&gt;&#xD;
&lt;p&gt;else if (ch != ',')&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;throw new IOException("Malformed PASV reply: " + &lt;/p&gt;&#xD;
&lt;p&gt;reply);&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;if (ch == ',' || i+1 == len)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;try&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;parts[partCount++] = Int32.Parse(buf);&lt;/p&gt;&#xD;
&lt;p&gt;buf="";&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;catch (Exception)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;throw new IOException("Malformed PASV reply: " + &lt;/p&gt;&#xD;
&lt;p&gt;reply);&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;string ipAddress = parts[0] + "."+ parts[1]+ "." +&lt;/p&gt;&#xD;
&lt;p&gt;parts[2] + "." + parts[3];&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;int port = (parts[4] &amp;lt;&amp;lt; 8) + parts[5];&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;Socket s = new &lt;/p&gt;&#xD;
&lt;p&gt;Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);&lt;/p&gt;&#xD;
&lt;p&gt;s.SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 5000);&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;IPEndPoint ep = new &lt;/p&gt;&#xD;
&lt;p&gt;IPEndPoint(Dns.Resolve(ipAddress).AddressList[0], port);&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;try&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;s.Connect(ep);&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;catch(Exception)&lt;/p&gt;&#xD;
&lt;p&gt;{&lt;/p&gt;&#xD;
&lt;p&gt;throw new IOException("Can't connect to remote&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; server");&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;return s;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;本文来自CSDN博客，转载请标明出处：&lt;a href="http://blog.csdn.net/zhanglei5415/archive/2007/10/29/1853627.aspx" target="_blank"&gt;http://blog.csdn.net/zhanglei5415/archive/2007/10/29/1853627.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/skyado/aggbug/1682140.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/skyado/archive/2010/03/10/1682140.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
