从.NET Framework 2.0版本开始,使用WebClient类可以简单的从FTP服务器下载文件,或者向FTP服务器上传文件。
从FTP服务下载文件
和在「文件下载保存」中介绍的方法一样。如果使用WebClient.DownloadFile类可以简单些。
下面的例子是从ftp://localhost/test.txt下载文件,保存到"C:\test.txt"路径的方法。
[VB.NET] 'WebClient对象作成 Dim wc As New System.Net.WebClient() '指定用户名和密码 wc.Credentials = New System.Net.NetworkCredential("username", "password") '从FTP服务器下载 wc.DownloadFile("ftp://localhost/test.txt", "C:\test.txt") '释放资源 wc.Dispose()
[C#] // WebClient对象作成 System.Net.WebClient wc = new System.Net.WebClient(); //指定用户名和密码 wc.Credentials =
向FTP服务器上传文件
下面的例子是,把路径"C:\test.txt"文件上传到ftp://localhost/test.txt保存。
[VB.NET] 'WebClient对象作成 Dim wc As New System.Net.WebClient() '指定用户名和密码 wc.Credentials = New System.Net.NetworkCredential("username", "password") '向FTP服务器上传文件 wc.UploadFile("ftp://localhost/test.txt", "C:\test.txt") '释放资源 wc.Dispose()
[C#] // WebClient对象作成 System.Net.WebClient wc = new System.Net.WebClient(); //指定用户名和密码 wc.Credentials = new System.Net.NetworkCredential("username", "password"); //向FTP服务器上传文件 wc.UploadFile("ftp://localhost/test.txt", @"C:\test.txt"); //向FTP服务器上传文件 wc.Dispose();
使用STOU或APPE命令向FTP服务器上传
根据指定WebClient.UploadFile方法的第2个参 数"WebRequestMethods.Ftp.UploadFileWithUniqueName
WebClient类的方法
根据上面所述,使用WebClient类对FTP服务器连接时,在WebClient类的内部使用FtpWebRequest和FtpWebResponse类。使用FtpWebRequest和FtpWebResponse类上传文件、下载文件的方法请参照这里, 而WebClient类也可以实现同样的功能。但是,不能进行很细的设定,只能使用FtpWebRequest的默认设定而已。也就是说,当PASV方式 有效时(FtpWebRequest.UsePassive属性为True),会变为二进制方法(FtpWebRequest.UseBinary属性为 True)。还有,因为FtpWebRequest.KeepAlive属性为False,所以就算触发WebClient.Dispose方法也没有办 法注销。