Ftp操作类

FtpWeb.cs

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Text;
  4 using System.IO;
  5 using System.Net;
  6 using System.Windows.Forms;
  7 using System.Globalization;
  8 
  9 namespace SearchPicture
 10 {
 11 
 12     public class FtpWeb
 13     {
 14         string ftpServerIP;
 15         string ftpRemotePath;
 16         string ftpUserID;
 17         string ftpPassword;
 18         string ftpURI;
 19         int ftpPort;
 20 
 21         /// <summary>
 22         /// 连接FTP
 23         /// </summary>
 24         /// <param name="FtpServerIP">FTP连接地址</param>
 25         /// <param name="FtpRemotePath">指定FTP连接成功后的当前目录, 如果不指定即默认为根目录</param>
 26         /// <param name="FtpUserID">用户名</param>
 27         /// <param name="FtpPassword">密码</param>
 28         public FtpWeb(string FtpServerIP, string FtpRemotePath, string FtpUserID, string FtpPassword)
 29         {
 30             ftpServerIP = FtpServerIP;
 31             ftpRemotePath = FtpRemotePath;
 32             ftpUserID = FtpUserID;
 33             ftpPassword = FtpPassword;
 34             ftpURI = "ftp://" + ftpServerIP + "/" + ftpRemotePath + "/";
 35         }
 36 
 37         /// <summary>
 38         /// ftp连接
 39         /// </summary>
 40         /// <param name="FtpServerIP"></param>
 41         /// <param name="FtpPort"></param>
 42         /// <param name="FtpRemotePath"></param>
 43         /// <param name="FtpUserID"></param>
 44         /// <param name="FtpPassword"></param>
 45         public FtpWeb(string FtpServerIP, int FtpPort, string FtpRemotePath, string FtpUserID, string FtpPassword)
 46         {
 47             ftpServerIP = FtpServerIP;
 48             ftpRemotePath = FtpRemotePath;
 49             ftpUserID = FtpUserID;
 50             ftpPassword = FtpPassword;
 51             ftpPort = FtpPort;
 52             ftpURI = string.Format("ftp://{0}:{1}/",ftpServerIP,FtpPort);
 53             if (!string.IsNullOrEmpty(FtpRemotePath))
 54             {
 55                 ftpURI = string.Format("{0}{1}/",ftpURI,FtpRemotePath);
 56             }
 57         }
 58 
 59         /// <summary>
 60         /// 上传
 61         /// </summary>
 62         /// <param name="filename"></param>
 63         public void Upload(string filename)
 64         {
 65             FileInfo fileInf = new FileInfo(filename);
 66             string uri = ftpURI + fileInf.Name;
 67             FtpWebRequest reqFTP;
 68 
 69             reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));
 70             reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
 71             reqFTP.KeepAlive = false;
 72             reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
 73             reqFTP.UseBinary = true;
 74             reqFTP.ContentLength = fileInf.Length;
 75             int buffLength = 2048;
 76             byte[] buff = new byte[buffLength];
 77             int contentLen;
 78             FileStream fs = fileInf.OpenRead();
 79             try
 80             {
 81                 Stream strm = reqFTP.GetRequestStream();
 82                 contentLen = fs.Read(buff, 0, buffLength);
 83                 while (contentLen != 0)
 84                 {
 85                     strm.Write(buff, 0, contentLen);
 86                     contentLen = fs.Read(buff, 0, buffLength);
 87                 }
 88                 strm.Close();
 89                 fs.Close();
 90             }
 91             catch (Exception ex)
 92             {
 93                 throw new Exception("上传文件出错!", ex);
 94             }
 95         }
 96 
 97         /// <summary>
 98         /// 下载
 99         /// </summary>
100         /// <param name="filePath"></param>
101         /// <param name="fileName"></param>
102         public void Download(string filePath, string fileName)
103         {
104             FtpWebRequest reqFTP;
105             try
106             {
107                 FileStream outputStream = new FileStream(filePath + "\\" + fileName, FileMode.Create);
108 
109                 reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI + fileName));
110                 reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
111                 reqFTP.UseBinary = true;
112                 reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
113                 FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
114                 Stream ftpStream = response.GetResponseStream();
115                 long cl = response.ContentLength;
116                 int bufferSize = 2048;
117                 int readCount;
118                 byte[] buffer = new byte[bufferSize];
119 
120                 readCount = ftpStream.Read(buffer, 0, bufferSize);
121                 while (readCount > 0)
122                 {
123                     outputStream.Write(buffer, 0, readCount);
124                     readCount = ftpStream.Read(buffer, 0, bufferSize);
125                 }
126 
127                 ftpStream.Close();
128                 outputStream.Close();
129                 response.Close();
130             }
131             catch (Exception ex)
132             {
133                 throw new Exception("下载文件出错!", ex);
134             }
135         }
136 
137 
138         /// <summary>
139         /// 删除文件
140         /// </summary>
141         /// <param name="fileName"></param>
142         public void Delete(string fileName)
143         {
144             try
145             {
146                 string uri = ftpURI + fileName;
147                 FtpWebRequest reqFTP;
148                 reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));
149 
150                 reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
151                 reqFTP.KeepAlive = false;
152                 reqFTP.Method = WebRequestMethods.Ftp.DeleteFile;
153 
154                 string result = String.Empty;
155                 FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
156                 long size = response.ContentLength;
157                 Stream datastream = response.GetResponseStream();
158                 StreamReader sr = new StreamReader(datastream);
159                 result = sr.ReadToEnd();
160                 sr.Close();
161                 datastream.Close();
162                 response.Close();
163             }
164             catch (Exception ex)
165             {
166                 throw new Exception("删除文件!", ex);
167             }
168         }
169 
170         /// <summary>
171         /// 删除文件夹
172         /// </summary>
173         /// <param name="folderName"></param>
174         public void RemoveDirectory(string folderName)
175         {
176             try
177             {
178                 string uri = ftpURI + folderName;
179                 FtpWebRequest reqFTP;
180                 reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));
181 
182                 reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
183                 reqFTP.KeepAlive = false;
184                 reqFTP.Method = WebRequestMethods.Ftp.RemoveDirectory;
185 
186                 string result = String.Empty;
187                 FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
188                 long size = response.ContentLength;
189                 Stream datastream = response.GetResponseStream();
190                 StreamReader sr = new StreamReader(datastream);
191                 result = sr.ReadToEnd();
192                 sr.Close();
193                 datastream.Close();
194                 response.Close();
195             }
196             catch (Exception ex)
197             {
198 
199                 throw new Exception("删除文件夹!", ex);
200             }
201         }
202 
203         /// <summary>
204         /// 获取当前目录下明细(包含文件和文件夹)
205         /// </summary>
206         /// <returns></returns>
207         public string[] GetFilesDetailList()
208         {
209             string[] downloadFiles;
210             try
211             {
212                 StringBuilder result = new StringBuilder();
213                 FtpWebRequest ftp;
214                 ftp = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI));
215                 ftp.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
216                 ftp.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
217                 WebResponse response = ftp.GetResponse();
218                 StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
219 
220                 //while (reader.Read() > 0)
221                 //{
222 
223                 //}
224                 string line = reader.ReadLine();
225                 //line = reader.ReadLine();
226                 //line = reader.ReadLine();
227 
228                 while (line != null)
229                 {
230                     result.Append(line);
231                     result.Append("\n");
232                     line = reader.ReadLine();
233                 }
234                 result.Remove(result.ToString().LastIndexOf("\n"), 1);
235                 reader.Close();
236                 response.Close();
237                 return result.ToString().Split('\n');
238             }
239             catch (Exception ex)
240             {
241                 throw new Exception("获取当前目录下明细(包含文件和文件夹)!", ex);
242             }
243         }
244 
245         /// <summary>
246         /// 获取当前目录下文件列表(仅文件)
247         /// </summary>
248         /// <returns></returns>
249         public string[] GetFileList(string mask)
250         {
251             string[] downloadFiles;
252             StringBuilder result = new StringBuilder();
253             FtpWebRequest reqFTP;
254             try
255             {
256                 reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI));
257                 reqFTP.UseBinary = true;
258                 reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
259                 reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;
260                 WebResponse response = reqFTP.GetResponse();
261                 StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
262 
263                 string line = reader.ReadLine();
264                 while (line != null)
265                 {
266                     if (mask.Trim() != string.Empty && mask.Trim() != "*.*")
267                     {
268 
269                         string mask_ = mask.Substring(0, mask.IndexOf("*"));
270                         if (line.Substring(0, mask_.Length) == mask_)
271                         {
272                             result.Append(line);
273                             result.Append("\n");
274                         }
275                     }
276                     else
277                     {
278                         result.Append(line);
279                         result.Append("\n");
280                     }
281                     line = reader.ReadLine();
282                 }
283                 result.Remove(result.ToString().LastIndexOf('\n'), 1);
284                 reader.Close();
285                 response.Close();
286                 return result.ToString().Split('\n');
287             }
288             catch (Exception ex)
289             {
290                 throw new Exception("获取当前目录下文件列表(仅文件)!", ex);
291             }
292         }
293 
294         /// <summary>
295         /// 获取当前目录下所有的文件夹列表(仅文件夹)
296         /// </summary>
297         /// <returns></returns>
298         public string[] GetDirectoryList()
299         {
300             string[] drectory = GetFilesDetailList();
301             string m = string.Empty;
302             foreach (string str in drectory)
303             {
304                 int dirPos = str.IndexOf("<DIR>");
305                 if (dirPos > 0)
306                 {
307                     /*判断 Windows 风格*/
308                     m += str.Substring(dirPos + 5).Trim() + "\n";
309                 }
310                 else if (str.Trim().Substring(0, 1).ToUpper() == "D")
311                 {
312                     /*判断 Unix 风格*/
313                     string dir = str.Substring(54).Trim();
314                     if (dir != "." && dir != "..")
315                     {
316                         m += dir + "\n";
317                     }
318                 }
319             }
320 
321             char[] n = new char[] { '\n' };
322             return m.Split(n);
323         }
324 
325         /// <summary>
326         /// 判断当前目录下指定的子目录是否存在
327         /// </summary>
328         /// <param name="RemoteDirectoryName">指定的目录名</param>
329         public bool DirectoryExist(string RemoteDirectoryName)
330         {
331             string[] dirList = GetDirectoryList();
332             foreach (string str in dirList)
333             {
334                 if (str.Trim() == RemoteDirectoryName.Trim())
335                 {
336                     return true;
337                 }
338             }
339             return false;
340         }
341 
342         /// <summary>
343         /// 判断当前目录下指定的文件是否存在
344         /// </summary>
345         /// <param name="RemoteFileName">远程文件名</param>
346         public bool FileExist(string RemoteFileName)
347         {
348             string[] fileList = GetFileList("*.*");
349             foreach (string str in fileList)
350             {
351                 if (str.Trim() == RemoteFileName.Trim())
352                 {
353                     return true;
354                 }
355             }
356             return false;
357         }
358 
359         /// <summary>
360         /// 创建文件夹
361         /// </summary>
362         /// <param name="dirName"></param>
363         public void MakeDir(string dirName)
364         {
365             FtpWebRequest reqFTP;
366             try
367             {
368                 // dirName = name of the directory to create.
369                 reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI + dirName));
370                 reqFTP.Method = WebRequestMethods.Ftp.MakeDirectory;
371                 reqFTP.UseBinary = true;
372                 reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
373                 FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
374                 Stream ftpStream = response.GetResponseStream();
375 
376                 ftpStream.Close();
377                 response.Close();
378             }
379             catch (Exception ex)
380             {
381                 throw new Exception("创建文件夹出错!", ex);
382             }
383         }
384 
385         /// <summary>
386         /// 获取指定文件大小
387         /// </summary>
388         /// <param name="filename"></param>
389         /// <returns></returns>
390         public long GetFileSize(string filename)
391         {
392             FtpWebRequest reqFTP;
393             long fileSize = 0;
394             try
395             {
396                 reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI + filename));
397                 reqFTP.Method = WebRequestMethods.Ftp.GetFileSize;
398                 reqFTP.UseBinary = true;
399                 reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
400                 FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
401                 Stream ftpStream = response.GetResponseStream();
402                 fileSize = response.ContentLength;
403 
404                 ftpStream.Close();
405                 response.Close();
406             }
407             catch (Exception ex)
408             {
409                 throw new Exception("获取指定文件大小出错!", ex);
410             }
411             return fileSize;
412         }
413 
414         /// <summary>
415         /// 改名
416         /// </summary>
417         /// <param name="currentFilename"></param>
418         /// <param name="newFilename"></param>
419         public void ReName(string currentFilename, string newFilename)
420         {
421             FtpWebRequest reqFTP;
422             try
423             {
424                 reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI + currentFilename));
425                 reqFTP.Method = WebRequestMethods.Ftp.Rename;
426                 reqFTP.RenameTo = newFilename;
427                 reqFTP.UseBinary = true;
428                 reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
429                 FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
430                 Stream ftpStream = response.GetResponseStream();
431 
432                 ftpStream.Close();
433                 response.Close();
434             }
435             catch (Exception ex)
436             {
437                 throw new Exception("修改文件名称出错!",ex);
438             }
439         }
440 
441     }
442 
443 }
View Code

FtpWebServer.cs

  1 using System;
  2 using System.Collections.Generic;
  3 using System.IO;
  4 using System.Linq;
  5 using System.Net;
  6 using System.Text;
  7 
  8 namespace SearchPicture
  9 {
 10     /// <summary>
 11     /// 服务器操作类
 12     /// </summary>
 13     public class FtpWebServer
 14     {
 15         #region FtpWebServer 服务器操作方法
 16         string ftpServerIp;//服务器ip地址
 17         int ftpPort;//服务器端口
 18         string userName;//用户名
 19         string userPwd;//用户密码
 20         string ftpBaseUrl;//路径组成 ftp://ftpServerIp:ftpPort/
 21 
 22         /// <summary>
 23         /// 构造函数
 24         /// </summary>
 25         /// <param name="ftpServerIp">服务器地址</param>
 26         /// <param name="ftpPort">服务器端口号</param>
 27         /// <param name="userName">用户名</param>
 28         /// <param name="userPwd">用户密码</param>
 29         public FtpWebServer(string ftpServerIp, int ftpPort, string userName, string userPwd)
 30         {
 31             this.ftpServerIp = ftpServerIp;
 32             this.ftpPort = ftpPort;
 33             this.userName = userName;
 34             this.userPwd = userPwd;
 35             this.ftpBaseUrl = string.Format("ftp://{0}:{1}/", ftpServerIp, ftpPort);
 36         }
 37         #endregion
 38 
 39 
 40         //1.搜索文件夹 指定ip地址,日期范围
 41 
 42         #region SearchDir 搜索一级目录下的二级文件夹目录,指定一级目录
 43         /// <summary>
 44         /// 搜索一级目录下的二级文件夹目录,指定一级目录
 45         /// </summary>
 46         /// <param name="firstDir"></param>
 47         /// <returns></returns>
 48         public List<FtpModel> SearchDir(List<string> firstDir, string serverName)
 49         {
 50             List<FtpModel> list = new List<FtpModel>();
 51 
 52             foreach (var item in firstDir)
 53             {
 54                 try
 55                 {
 56                     var ftpUrl = string.Format("{0}{1}/", ftpBaseUrl, item);
 57 
 58                     FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpUrl));
 59                     ftp.Credentials = new NetworkCredential(userName, userPwd);
 60                     ftp.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
 61                     WebResponse response = ftp.GetResponse();
 62                     StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
 63 
 64                     string line = reader.ReadLine();
 65                     while (line != null)
 66                     {
 67 
 68                         int dirPos = line.IndexOf("<DIR>");
 69                         if (dirPos > 0)
 70                         {
 71                             /*判断 Windows 风格*/
 72                             FtpModel model = new FtpModel();
 73                             model.FtpDepartDir = line.Substring(line.LastIndexOf("<DIR>") + 5).Trim();
 74                             model.FtpServerUrl = string.Format("{0}{1}/", ftpUrl, model.FtpDepartDir);
 75                             model.ServerName = serverName;
 76                             list.Add(model);
 77 
 78                         }
 79                         else if (line.Trim().Substring(0, 1).ToUpper() == "D")
 80                         {
 81                             /*判断 Unix 风格*/
 82                             string dir = line.Substring(51).Trim();
 83                             if (dir != "." && dir != "..")
 84                             {
 85                                 FtpModel model = new FtpModel();
 86                                 model.FtpDepartDir = dir;
 87                                 model.FtpServerUrl = string.Format("{0}{1}/", ftpUrl, model.FtpDepartDir);
 88                                 model.ServerName = serverName;
 89                                 list.Add(model);
 90                             }
 91                         }
 92 
 93                         line = reader.ReadLine();
 94                     }
 95                     reader.Close();
 96                     response.Close();
 97                 }
 98                 catch (Exception ex)
 99                 {
100                     Log.LogMessage("搜索部门/班级发生错误", ex);
101                 }
102             }
103             return list;
104         }
105         #endregion
106 
107         #region SearchFtpName 搜索ftp服务器名称
108         /// <summary>
109         /// 搜索ftp服务器名称
110         /// </summary>
111         /// <returns></returns>
112         public string SearchFtpName()
113         {
114             string ftpName = string.Empty;
115 
116             FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpBaseUrl));
117             ftp.Credentials = new NetworkCredential(userName, userPwd);
118             ftp.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
119             WebResponse response = ftp.GetResponse();
120             StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
121 
122             string line = reader.ReadLine();
123             while (line != null)
124             {
125                 if (line.Length > 51 && !line.Contains("<DIR>") && line.ToUpper().Trim().EndsWith(".TXT"))
126                 {
127                     //读取到服务器名称,则自动跳出
128 
129                     ftpName = line.Substring(51).Trim();
130                     ftpName = ftpName.Substring(0, ftpName.LastIndexOf("."));
131                     break;
132                 }
133                 line = reader.ReadLine();
134             }
135             reader.Close();
136             response.Close();
137 
138             return ftpName;
139         }
140         #endregion
141 
142         //2.搜索文件 指定日期范围,文件夹名称
143 
144         #region SearchFile 搜索文件名或者搜索文件夹下的所有文件
145         /// <summary>
146         /// 搜索文件
147         /// </summary>
148         /// <param name="userName"></param>
149         /// <param name="userPwd"></param>
150         /// <param name="ftpUrl"></param>
151         /// <param name="name"></param>
152         /// <returns></returns>
153         public static List<FtpFileModel> SearchFile(string userName, string userPwd, string ftpUrl, string name, string ftpName)
154         {
155             List<FtpFileModel> fileList = new List<FtpFileModel>();
156 
157             //搜索所有文件
158             FtpWebRequest reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpUrl));
159             reqFTP.UseBinary = true;
160             reqFTP.Credentials = new NetworkCredential(userName, userPwd);
161             reqFTP.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
162             WebResponse response = reqFTP.GetResponse();
163             StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
164 
165             string line = reader.ReadLine();
166             while (line != null)
167             {
168 
169                 if (line.IndexOf("_") > 0 && !line.Contains("<DIR>") && line.Length > 51)
170                 {
171                     var fileName = line.Substring(51).Trim();
172                     if (fileName.Substring(0, fileName.IndexOf("_")).Contains(name) || name == string.Empty)
173                     {
174                         FtpFileModel model = new FtpFileModel();
175                         ChangeStringToUserInfo(fileName, model);
176                         model.FtpFileUrl = ftpUrl + fileName;
177                         model.ServerName = ftpName;
178                         fileList.Add(model);
179                     }
180                 }
181                 line = reader.ReadLine();
182             }
183             reader.Close();
184             response.Close();
185 
186 
187             return fileList;
188         }
189         #endregion
190 
191 
192         //3.拷贝文件 指定文件路径,ip地址,本地文件路径
193 
194         #region CopyFile 复制文件到本地
195         /// <summary>
196         /// 复制文件到本地
197         /// </summary>
198         /// <param name="userName"></param>
199         /// <param name="userPwd"></param>
200         /// <param name="ftpUrl"></param>
201         /// <param name="fileDir">本地保存文件基本路径</param>
202         /// <returns></returns>
203         public static bool CopyFile(string userName, string userPwd, string ftpUrl, string fileDir, ref string downloadUrl)
204         {
205 
206             //检测本地文件夹是否存在,如果不存在则创建
207             var downloadDir = ftpUrl.Replace("ftp://", "");
208             var begin = downloadDir.IndexOf("/");
209             var length = downloadDir.LastIndexOf("/") + 1 - begin;
210             downloadDir = fileDir + "/" + downloadDir.Substring(begin, length);
211             if (!Directory.Exists(downloadDir))
212             {
213                 Directory.CreateDirectory(downloadDir);
214             }
215             downloadUrl = downloadDir + "/" + Path.GetFileName(ftpUrl);
216 
217             if (File.Exists(downloadUrl)) return true;
218 
219             return CopyOnlyFile(userName, userPwd, ftpUrl, downloadUrl);
220 
221         }
222         #endregion
223 
224         #region CopyOnlyFile 下载文件到本地
225         /// <summary>
226         /// 下载文件到本地
227         /// </summary>
228         /// <param name="userName"></param>
229         /// <param name="userPwd"></param>
230         /// <param name="ftpUrl"></param>
231         /// <param name="currentUrl"></param>
232         /// <returns></returns>
233         public static bool CopyOnlyFile(string userName, string userPwd, string ftpUrl, string currentUrl)
234         {
235 
236             FileStream outputStream = new FileStream(currentUrl, FileMode.Create);
237             FtpWebRequest reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpUrl));
238             reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
239             reqFTP.UseBinary = true;
240             reqFTP.Credentials = new NetworkCredential(userName, userPwd);
241             FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
242             Stream ftpStream = response.GetResponseStream();
243             long cl = response.ContentLength;
244             int bufferSize = 2048;
245             int readCount;
246             byte[] buffer = new byte[bufferSize];
247 
248             readCount = ftpStream.Read(buffer, 0, bufferSize);
249             while (readCount > 0)
250             {
251                 outputStream.Write(buffer, 0, readCount);
252                 readCount = ftpStream.Read(buffer, 0, bufferSize);
253             }
254 
255             ftpStream.Close();
256             outputStream.Close();
257             response.Close();
258 
259             return true;
260 
261         }
262         #endregion
263 
264         #region ChangeStringToUserInfo 将文件名转换为用户名和刷卡时间
265         /// <summary>
266         /// 将文件名转换为用户名和刷卡时间
267         /// </summary>
268         /// <param name="url"></param>
269         /// <param name="model"></param>
270         private static void ChangeStringToUserInfo(string picName, FtpFileModel model)
271         {
272             var ext = Path.GetExtension(picName);
273             picName = picName.Replace(ext, string.Empty);
274 
275             var names = picName.Split(new char[] { '_' });
276             var year = names[1].Substring(0, 4);
277             var month = names[1].Substring(4, 2);
278             var day = names[1].Substring(6, 2);
279             var hour = names[1].Substring(8, 2);
280             var min = names[1].Substring(10, 2);
281             var second = names[1].Substring(12, 2);
282             model.UserTime = string.Format("{0}-{1}-{2} {3}:{4}:{5}", year, month, day, hour, min, second);
283             model.UserName = names[0];
284         }
285         #endregion
286     }
287 }
View Code

 

posted @ 2014-04-16 13:29  MyFirstHome  阅读(390)  评论(0编辑  收藏  举报