设为首页 收藏本站
查看: 821|回复: 0

Ftp服务器文件操作

[复制链接]

尚未签到

发表于 2015-5-29 08:44:45 | 显示全部楼层 |阅读模式
1 using System;
  2 using System.IO;
  3 using System.Net;
  4 using System.Collections.Generic;
  5
  6 public class FtpUtility
  7 {
  8     ///
  9     /// 获取Ftp服务器上文件列表
10     ///
11     /// Ftp服务器IP
12     /// 用户名
13     /// 口令
14     /// 返回一个文件列表泛型集合
15     public static List GetFiles(string server, string userName, string password)
16     {
17         List fileList = new List();
18
19         try
20         {
21             FtpWebRequest ftpRequest = (FtpWebRequest)FtpWebRequest.Create(new Uri(server));//"ftp://127.0.0.1/book"
22
23             ftpRequest.UseBinary = true;
24             ftpRequest.Credentials = new NetworkCredential(userName, password);
25
26             ftpRequest.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
27
28             WebResponse response = ftpRequest.GetResponse();
29
30             StreamReader sr = new StreamReader(response.GetResponseStream());
31
32             string line = sr.ReadLine();
33
34             while (line != null)
35             {
36                 fileList.Add(line);
37                 line = sr.ReadLine();
38             }
39
40             sr.Close();
41             response.Close();
42         }
43         catch
44         {
45
46         }
47
48         return fileList;
49     }
50
51     ///
52     /// 下载Ftp服务器上指定文件
53     ///
54     /// 文件路径
55     /// 用户名
56     /// 口令
57     /// 返回一个布尔值类型的操作结果。true为成功,false为失败。
58     public static bool DownloadFile(string fileName, string userName, string password)
59     {
60         try
61         {
62             //创建输出文件流对象
63             FileStream outputStream = new FileStream(fileName, FileMode.Create);
64             //使用指定的Uri对象初始化Ftp客户端
65             FtpWebRequest ftpRequest = (FtpWebRequest)FtpWebRequest.Create(new Uri(fileName));//"ftp://127.0.0.1/book/setup.exe"
66             //指定发送到服务器端的命令为文件下载
67             ftpRequest.Method = WebRequestMethods.Ftp.DownloadFile;
68             //指定文件传输的数据类型是否启用二进制
69             ftpRequest.KeepAlive = true;
70             ftpRequest.UseBinary = true;
71             //指定连接到服务器端的用户凭证
72             ftpRequest.Credentials = new NetworkCredential(userName, password);
73             //返回服务器端的响应
74             FtpWebResponse response = (FtpWebResponse)ftpRequest.GetResponse();
75
76             //创建服务器上的响应流
77             Stream ftpStream = response.GetResponseStream();
78
79
80             //获取从服务器上接受数据的长度
81             long cl = response.ContentLength;
82
83             //设置缓冲区大小
84             int bufferSize = 2048;
85
86             //创建缓冲区
87             byte[] buffer = new byte[bufferSize];
88
89             //从响应流中读取的数据的长度
90             int readCount = ftpStream.Read(buffer, 0, bufferSize);
91
92             while (readCount > 0)
93             {
94                 outputStream.Write(buffer, 0, readCount);
95
96                 readCount = ftpStream.Read(buffer, 0, bufferSize);
97             }
98
99             ftpStream.Close();
100
101             outputStream.Close();
102
103             response.Close();
104             return true;
105         }
106         catch
107         {
108             return false;
109         }
110     }
111
112     ///
113     /// 删除Ftp服务器上指定文件
114     ///
115     /// 文件路径
116     /// 用户名
117     /// 口令
118     /// 返回一个布尔值类型的操作结果。true为成功,false为失败。
119     public static bool DeleteFile(string fileName, string userName, string password)
120     {
121         try
122         {
123             //使用指定的Uri对象初始化Ftp客户端
124             FtpWebRequest ftpRequest = (FtpWebRequest)FtpWebRequest.Create(new Uri(fileName));//"ftp://127.0.0.1/book/setup.exe"
125             //指定发送到服务器端的命令为文件下载
126             ftpRequest.Method = WebRequestMethods.Ftp.DeleteFile;
127             //指定文件传输的数据类型是否启用二进制
128             //reqFtp.UseBinary = true;
129             //指定连接到服务器端的用户凭证
130             ftpRequest.Credentials = new NetworkCredential(userName, password);
131             //返回服务器端的响应
132             FtpWebResponse response = (FtpWebResponse)ftpRequest.GetResponse();
133
134             response.Close();
135             return true;
136         }
137         catch
138         {
139             return false;
140         }
141     }
142 }
143   

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-71691-1-1.html 上篇帖子: ftp虚拟用户添加 下篇帖子: Linux下Oracle文件的自动备份与ftp自动上传
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表