华恒Mes鼎捷代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

740 lines
27 KiB

5 months ago
  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. namespace ICSSoft.Frame.APP
  9. {
  10. public class FtpWeb
  11. {
  12. string ftpServerIP;
  13. string ftpRemotePath;
  14. string ftpUserID;
  15. string ftpPassword;
  16. string ftpURI;
  17. /// <summary>
  18. /// 连接FTP
  19. /// </summary>
  20. /// <param name="FtpServerIP">FTP连接地址</param>
  21. /// <param name="FtpRemotePath">指定FTP连接成功后的当前目录, 如果不指定即默认为根目录</param>
  22. /// <param name="FtpUserID">用户名</param>
  23. /// <param name="FtpPassword">密码</param>
  24. public FtpWeb(string FtpServerIP, string FtpRemotePath, string FtpUserID, string FtpPassword)
  25. {
  26. ftpServerIP = FtpServerIP;
  27. ftpRemotePath = FtpRemotePath;
  28. ftpUserID = FtpUserID;
  29. ftpPassword = FtpPassword;
  30. ftpURI = "ftp://" + ftpServerIP + "/" + ftpRemotePath + "/";
  31. }
  32. /// <summary>
  33. /// 连接FTP
  34. /// </summary>
  35. /// <param name="FtpServerIP">FTP连接地址</param>
  36. /// <param name="FtpRemotePath">指定FTP连接成功后的当前目录, 如果不指定即默认为根目录</param>
  37. /// <param name="FtpUserID">用户名</param>
  38. /// <param name="FtpPassword">密码</param>
  39. public FtpWeb(string FtpURI, string FtpUserID, string FtpPassword)
  40. {
  41. ftpServerIP = "";
  42. ftpRemotePath = "";
  43. ftpUserID = FtpUserID;
  44. ftpPassword = FtpPassword;
  45. ftpURI = "ftp://" + FtpURI;
  46. }
  47. /// <summary>
  48. /// 上传
  49. /// </summary>
  50. /// <param name="filename"></param>
  51. public void Upload(string filename, long hid, string imgPath)
  52. {
  53. if (!File.Exists(filename))
  54. {
  55. return;
  56. }
  57. FileInfo fileInf = new FileInfo(filename);
  58. string uri = ftpURI + imgPath + fileInf.Name;
  59. FtpWebRequest reqFTP;
  60. reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));
  61. reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
  62. reqFTP.KeepAlive = false;
  63. reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
  64. reqFTP.UseBinary = true;
  65. reqFTP.ContentLength = fileInf.Length;
  66. int buffLength = 2048;
  67. byte[] buff = new byte[buffLength];
  68. int contentLen;
  69. FileStream fs = fileInf.OpenRead();
  70. try
  71. {
  72. Stream strm = reqFTP.GetRequestStream();
  73. contentLen = fs.Read(buff, 0, buffLength);
  74. while (contentLen != 0)
  75. {
  76. strm.Write(buff, 0, contentLen);
  77. contentLen = fs.Read(buff, 0, buffLength);
  78. }
  79. strm.Close();
  80. fs.Close();
  81. }
  82. catch (Exception ex)
  83. {
  84. Insert_Standard_ErrorLog.Insert("FtpWeb", "Upload Error --> " + ex.Message);
  85. }
  86. }
  87. public void Upload(string filePath,string file, string filename)
  88. {
  89. bool b = FileExist(file);
  90. if(!b){
  91. MakeDir(file);
  92. }
  93. string type = filePath.Substring(filePath.IndexOf("."));
  94. FileInfo fileInf = new FileInfo(filePath);
  95. string uri = ftpURI + file + "/" + filename + ".pdf";
  96. FtpWebRequest reqFTP;
  97. reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));
  98. reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
  99. reqFTP.KeepAlive = false;
  100. reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
  101. reqFTP.UseBinary = true;
  102. reqFTP.ContentLength = fileInf.Length;
  103. int buffLength = 2048;
  104. byte[] buff = new byte[buffLength];
  105. int contentLen;
  106. FileStream fs = fileInf.OpenRead();
  107. try
  108. {
  109. Stream strm = reqFTP.GetRequestStream();
  110. contentLen = fs.Read(buff, 0, buffLength);
  111. while (contentLen != 0)
  112. {
  113. strm.Write(buff, 0, contentLen);
  114. contentLen = fs.Read(buff, 0, buffLength);
  115. }
  116. strm.Close();
  117. fs.Close();
  118. }
  119. catch (Exception ex)
  120. {
  121. Insert_Standard_ErrorLog.Insert("FtpWeb", "Upload Error --> " + ex.Message);
  122. }
  123. }
  124. public void UploadNew(string filePath, string file, string filename)
  125. {
  126. bool b = FileExist(file);
  127. if (!b)
  128. {
  129. MakeDir(file);
  130. }
  131. string type = filePath.Substring(filePath.IndexOf("."));
  132. FileInfo fileInf = new FileInfo(filePath);
  133. string uri = ftpURI + file + "/" + filename;
  134. FtpWebRequest reqFTP;
  135. reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));
  136. reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
  137. reqFTP.KeepAlive = false;
  138. reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
  139. reqFTP.UseBinary = true;
  140. reqFTP.ContentLength = fileInf.Length;
  141. int buffLength = 2048;
  142. byte[] buff = new byte[buffLength];
  143. int contentLen;
  144. FileStream fs = fileInf.OpenRead();
  145. try
  146. {
  147. Stream strm = reqFTP.GetRequestStream();
  148. contentLen = fs.Read(buff, 0, buffLength);
  149. while (contentLen != 0)
  150. {
  151. strm.Write(buff, 0, contentLen);
  152. contentLen = fs.Read(buff, 0, buffLength);
  153. }
  154. strm.Close();
  155. fs.Close();
  156. }
  157. catch (Exception ex)
  158. {
  159. Insert_Standard_ErrorLog.Insert("FtpWeb", "Upload Error --> " + ex.Message);
  160. }
  161. }
  162. /// <summary>
  163. /// 下载
  164. /// </summary>
  165. /// <param name="filePath"></param>
  166. /// <param name="fileName"></param>
  167. public void Download(string filePath, string fileName)
  168. {
  169. FtpWebRequest reqFTP;
  170. try
  171. {
  172. FileStream outputStream = new FileStream(filePath + "\\" + fileName, FileMode.Create);
  173. reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI + fileName));
  174. reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
  175. reqFTP.UseBinary = true;
  176. reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
  177. FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
  178. Stream ftpStream = response.GetResponseStream();
  179. long cl = response.ContentLength;
  180. int bufferSize = 2048;
  181. int readCount;
  182. byte[] buffer = new byte[bufferSize];
  183. readCount = ftpStream.Read(buffer, 0, bufferSize);
  184. while (readCount > 0)
  185. {
  186. outputStream.Write(buffer, 0, readCount);
  187. readCount = ftpStream.Read(buffer, 0, bufferSize);
  188. }
  189. ftpStream.Close();
  190. outputStream.Close();
  191. response.Close();
  192. }
  193. catch (Exception ex)
  194. {
  195. Insert_Standard_ErrorLog.Insert("FtpWeb", "Download Error --> " + ex.Message);
  196. }
  197. }
  198. public void Download(string filePath, string fileName,string file)
  199. {
  200. FtpWebRequest reqFTP;
  201. try
  202. {
  203. FileStream outputStream = new FileStream(filePath + "\\" + fileName, FileMode.Create);
  204. reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI + file + "/" + fileName));
  205. reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
  206. reqFTP.UseBinary = true;
  207. reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
  208. FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
  209. Stream ftpStream = response.GetResponseStream();
  210. long cl = response.ContentLength;
  211. int bufferSize = 2048;
  212. int readCount;
  213. byte[] buffer = new byte[bufferSize];
  214. readCount = ftpStream.Read(buffer, 0, bufferSize);
  215. while (readCount > 0)
  216. {
  217. outputStream.Write(buffer, 0, readCount);
  218. readCount = ftpStream.Read(buffer, 0, bufferSize);
  219. }
  220. ftpStream.Close();
  221. outputStream.Close();
  222. response.Close();
  223. }
  224. catch (Exception ex)
  225. {
  226. Insert_Standard_ErrorLog.Insert("FtpWeb", "Download Error --> " + ex.Message);
  227. }
  228. }
  229. public void Upload(string filename, long hid)
  230. {
  231. FileInfo fileInf = new FileInfo(filename);
  232. string uri = ftpURI + hid.ToString() + ".jpg";
  233. FtpWebRequest reqFTP;
  234. reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));
  235. reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
  236. reqFTP.KeepAlive = false;
  237. reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
  238. reqFTP.UseBinary = true;
  239. reqFTP.ContentLength = fileInf.Length;
  240. int buffLength = 2048;
  241. byte[] buff = new byte[buffLength];
  242. int contentLen;
  243. FileStream fs = fileInf.OpenRead();
  244. try
  245. {
  246. Stream strm = reqFTP.GetRequestStream();
  247. contentLen = fs.Read(buff, 0, buffLength);
  248. while (contentLen != 0)
  249. {
  250. strm.Write(buff, 0, contentLen);
  251. contentLen = fs.Read(buff, 0, buffLength);
  252. }
  253. strm.Close();
  254. fs.Close();
  255. }
  256. catch (Exception ex)
  257. {
  258. Insert_Standard_ErrorLog.Insert("FtpWeb", "Upload Error --> " + ex.Message);
  259. }
  260. }
  261. /// <summary>
  262. /// 删除文件
  263. /// </summary>
  264. /// <param name="fileName"></param>
  265. public void Delete(string fileName)
  266. {
  267. try
  268. {
  269. string uri = ftpURI + fileName;
  270. FtpWebRequest reqFTP;
  271. reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));
  272. reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
  273. reqFTP.KeepAlive = false;
  274. reqFTP.Method = WebRequestMethods.Ftp.DeleteFile;
  275. string result = String.Empty;
  276. FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
  277. long size = response.ContentLength;
  278. Stream datastream = response.GetResponseStream();
  279. StreamReader sr = new StreamReader(datastream);
  280. result = sr.ReadToEnd();
  281. sr.Close();
  282. datastream.Close();
  283. response.Close();
  284. }
  285. catch (Exception ex)
  286. {
  287. Insert_Standard_ErrorLog.Insert("FtpWeb", "Delete Error --> " + ex.Message + " 文件名:" + fileName);
  288. }
  289. }
  290. public void Delete(string folderName, string fileName)
  291. {
  292. try
  293. {
  294. string uri = ftpURI + folderName + "/" + fileName;
  295. FtpWebRequest reqFTP;
  296. reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));
  297. reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
  298. reqFTP.KeepAlive = false;
  299. reqFTP.Method = WebRequestMethods.Ftp.DeleteFile;
  300. string result = String.Empty;
  301. FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
  302. long size = response.ContentLength;
  303. Stream datastream = response.GetResponseStream();
  304. StreamReader sr = new StreamReader(datastream);
  305. result = sr.ReadToEnd();
  306. sr.Close();
  307. datastream.Close();
  308. response.Close();
  309. }
  310. catch (Exception ex)
  311. {
  312. Insert_Standard_ErrorLog.Insert("FtpWeb", "Delete Error --> " + ex.Message + " 文件名:" + fileName);
  313. }
  314. }
  315. /// <summary>
  316. /// 删除文件夹
  317. /// </summary>
  318. /// <param name="folderName"></param>
  319. public void RemoveDirectory(string folderName)
  320. {
  321. try
  322. {
  323. string uri = ftpURI + folderName;
  324. FtpWebRequest reqFTP;
  325. reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));
  326. reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
  327. reqFTP.KeepAlive = false;
  328. reqFTP.Method = WebRequestMethods.Ftp.RemoveDirectory;
  329. string result = String.Empty;
  330. FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
  331. long size = response.ContentLength;
  332. Stream datastream = response.GetResponseStream();
  333. StreamReader sr = new StreamReader(datastream);
  334. result = sr.ReadToEnd();
  335. sr.Close();
  336. datastream.Close();
  337. response.Close();
  338. }
  339. catch (Exception ex)
  340. {
  341. Insert_Standard_ErrorLog.Insert("FtpWeb", "Delete Error --> " + ex.Message + " 文件名:" + folderName);
  342. }
  343. }
  344. /// <summary>
  345. /// 获取当前目录下明细(包含文件和文件夹)
  346. /// </summary>
  347. /// <returns></returns>
  348. public string[] GetFilesDetailList()
  349. {
  350. string[] downloadFiles;
  351. try
  352. {
  353. StringBuilder result = new StringBuilder();
  354. FtpWebRequest ftp;
  355. ftp = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI));
  356. ftp.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
  357. ftp.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
  358. WebResponse response = ftp.GetResponse();
  359. Encoding encode = Encoding.GetEncoding("GB2312");//转换中文
  360. //StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
  361. StreamReader reader = new StreamReader(response.GetResponseStream(), encode);
  362. //while (reader.Read() > 0)
  363. //{
  364. //}
  365. string line = reader.ReadLine();
  366. while (line != null)
  367. {
  368. result.Append(line);
  369. result.Append("\n");
  370. line = reader.ReadLine();
  371. }
  372. result.Remove(result.ToString().LastIndexOf("\n"), 1);
  373. reader.Close();
  374. response.Close();
  375. return result.ToString().Split('\n');
  376. }
  377. catch (Exception ex)
  378. {
  379. downloadFiles = null;
  380. Insert_Standard_ErrorLog.Insert("FtpWeb", "GetFilesDetailList Error --> " + ex.Message);
  381. return downloadFiles;
  382. }
  383. }
  384. /// <summary>
  385. /// 获取当前目录下文件列表(仅文件)
  386. /// </summary>
  387. /// <returns></returns>
  388. public string[] GetFileList(string mask)
  389. {
  390. string[] downloadFiles;
  391. StringBuilder result = new StringBuilder();
  392. FtpWebRequest reqFTP;
  393. try
  394. {
  395. reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI + mask));
  396. mask = "*.*";
  397. reqFTP.UseBinary = true;
  398. reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
  399. reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;
  400. WebResponse response = reqFTP.GetResponse();
  401. Encoding encode = Encoding.GetEncoding("GB2312");//转换中文
  402. StreamReader reader = new StreamReader(response.GetResponseStream(), encode);
  403. ///StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
  404. string line = reader.ReadLine();
  405. while (line != null)
  406. {
  407. if (mask.Trim() != string.Empty && mask.Trim() != "*.*")
  408. {
  409. //string mask_ = mask.Substring(0, mask.IndexOf("*"));
  410. //if (line.Substring(0, mask_.Length) == mask_)
  411. //{
  412. // result.Append(line);
  413. // result.Append("\n");
  414. //}
  415. if (line.Contains(mask))
  416. {
  417. result.Append(line);
  418. result.Append("\n");
  419. }
  420. }
  421. else
  422. {
  423. result.Append(line);
  424. result.Append("\n");
  425. }
  426. line = reader.ReadLine();
  427. }
  428. if (result.Length > 0) result.Remove(result.ToString().LastIndexOf('\n'), 1);
  429. reader.Close();
  430. response.Close();
  431. return result.ToString().Split('\n');
  432. }
  433. catch (Exception ex)
  434. {
  435. downloadFiles = null;
  436. if (ex.Message.Trim() != "远程服务器返回错误: (550) 文件不可用(例如,未找到文件,无法访问文件)。")
  437. {
  438. Insert_Standard_ErrorLog.Insert("FtpWeb", "GetFileList Error --> " + ex.Message.ToString());
  439. }
  440. return downloadFiles;
  441. }
  442. }
  443. /// <summary>
  444. /// 获取当前目录下所有的文件夹列表(仅文件夹)
  445. /// </summary>
  446. /// <returns></returns>
  447. public string[] GetDirectoryList()
  448. {
  449. string[] drectory = GetFilesDetailList();
  450. string m = string.Empty;
  451. foreach (string str in drectory)
  452. {
  453. int dirPos = str.IndexOf("<DIR>");
  454. if (dirPos > 0)
  455. {
  456. /*判断 Windows 风格*/
  457. m += str.Substring(dirPos + 5).Trim() + "\n";
  458. }
  459. else if (str.Trim().Substring(0, 1).ToUpper() == "D")
  460. {
  461. /*判断 Unix 风格*/
  462. string dir = str.Substring(54).Trim();
  463. if (dir != "." && dir != "..")
  464. {
  465. m += dir + "\n";
  466. }
  467. }
  468. }
  469. char[] n = new char[] { '\n' };
  470. return m.Split(n);
  471. }
  472. /// <summary>
  473. /// 判断当前目录下指定的子目录是否存在
  474. /// </summary>
  475. /// <param name="RemoteDirectoryName">指定的目录名</param>
  476. public bool DirectoryExist(string RemoteDirectoryName)
  477. {
  478. string[] dirList = GetDirectoryList();
  479. foreach (string str in dirList)
  480. {
  481. if (str.Trim() == RemoteDirectoryName.Trim())
  482. {
  483. return true;
  484. }
  485. }
  486. return false;
  487. }
  488. /// <summary>
  489. /// 判断当前目录下指定的文件是否存在
  490. /// </summary>
  491. /// <param name="RemoteFileName">远程文件名</param>
  492. public bool FileExist(string RemoteFileName)
  493. {
  494. string[] fileList = GetFileList("*.*");
  495. //if (fileList == null)
  496. // return false;
  497. foreach (string str in fileList)
  498. {
  499. if (str.Trim() == RemoteFileName.Trim())
  500. {
  501. return true;
  502. }
  503. }
  504. return false;
  505. }
  506. /// <summary>
  507. /// 创建文件夹
  508. /// </summary>
  509. /// <param name="dirName"></param>
  510. public void MakeDir(string dirName)
  511. {
  512. FtpWebRequest reqFTP;
  513. try
  514. {
  515. // dirName = name of the directory to create.
  516. if (Directory.Exists(ftpURI + dirName))
  517. {
  518. return;
  519. }
  520. reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI + dirName));
  521. reqFTP.Method = WebRequestMethods.Ftp.MakeDirectory;
  522. reqFTP.KeepAlive = false;
  523. reqFTP.UsePassive = true;
  524. reqFTP.UseBinary = true;
  525. reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
  526. FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
  527. Stream ftpStream = response.GetResponseStream();
  528. ftpStream.Close();
  529. response.Close();
  530. }
  531. catch (Exception ex)
  532. {
  533. Insert_Standard_ErrorLog.Insert("FtpWeb", "MakeDir Error --> " + ex.Message);
  534. }
  535. }
  536. /// <summary>
  537. /// 获取指定文件大小
  538. /// </summary>
  539. /// <param name="filename"></param>
  540. /// <returns></returns>
  541. public long GetFileSize(string filename)
  542. {
  543. FtpWebRequest reqFTP;
  544. long fileSize = 0;
  545. try
  546. {
  547. reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI + filename));
  548. reqFTP.Method = WebRequestMethods.Ftp.GetFileSize;
  549. reqFTP.UseBinary = true;
  550. reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
  551. FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
  552. Stream ftpStream = response.GetResponseStream();
  553. fileSize = response.ContentLength;
  554. ftpStream.Close();
  555. response.Close();
  556. }
  557. catch (Exception ex)
  558. {
  559. Insert_Standard_ErrorLog.Insert("FtpWeb", "GetFileSize Error --> " + ex.Message);
  560. }
  561. return fileSize;
  562. }
  563. /// <summary>
  564. /// 改名
  565. /// </summary>
  566. /// <param name="currentFilename"></param>
  567. /// <param name="newFilename"></param>
  568. public void ReName(string currentFilename, string newFilename)
  569. {
  570. FtpWebRequest reqFTP;
  571. try
  572. {
  573. reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI + currentFilename));
  574. reqFTP.Method = WebRequestMethods.Ftp.Rename;
  575. reqFTP.RenameTo = newFilename;
  576. reqFTP.UseBinary = true;
  577. reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
  578. FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
  579. Stream ftpStream = response.GetResponseStream();
  580. ftpStream.Close();
  581. response.Close();
  582. }
  583. catch (Exception ex)
  584. {
  585. Insert_Standard_ErrorLog.Insert("FtpWeb", "ReName Error --> " + ex.Message);
  586. }
  587. }
  588. /// <summary>
  589. /// 移动文件
  590. /// </summary>
  591. /// <param name="currentFilename"></param>
  592. /// <param name="newFilename"></param>
  593. public void MovieFile(string currentFilename, string newDirectory)
  594. {
  595. ReName(currentFilename, newDirectory);
  596. }
  597. /// <summary>
  598. /// 切换当前目录
  599. /// </summary>
  600. /// <param name="DirectoryName"></param>
  601. /// <param name="IsRoot">true 绝对路径 false 相对路径</param>
  602. public void GotoDirectory(string DirectoryName, bool IsRoot)
  603. {
  604. if (IsRoot)
  605. {
  606. ftpRemotePath = DirectoryName;
  607. }
  608. else
  609. {
  610. ftpRemotePath += DirectoryName + "/";
  611. }
  612. ftpURI = "ftp://" + ftpServerIP + "/" + ftpRemotePath + "/";
  613. }
  614. /// <summary>
  615. /// 删除订单目录
  616. /// </summary>
  617. /// <param name="ftpServerIP">FTP 主机地址</param>
  618. /// <param name="folderToDelete">FTP 用户名</param>
  619. /// <param name="ftpUserID">FTP 用户名</param>
  620. /// <param name="ftpPassword">FTP 密码</param>
  621. public static void DeleteOrderDirectory(string ftpServerIP, string folderToDelete, string ftpUserID, string ftpPassword)
  622. {
  623. try
  624. {
  625. if (!string.IsNullOrEmpty(ftpServerIP) && !string.IsNullOrEmpty(folderToDelete) && !string.IsNullOrEmpty(ftpUserID) && !string.IsNullOrEmpty(ftpPassword))
  626. {
  627. FtpWeb fw = new FtpWeb(ftpServerIP, folderToDelete, ftpUserID, ftpPassword);
  628. //进入订单目录
  629. fw.GotoDirectory(folderToDelete, true);
  630. //获取规格目录
  631. string[] folders = fw.GetDirectoryList();
  632. foreach (string folder in folders)
  633. {
  634. if (!string.IsNullOrEmpty(folder) || folder != "")
  635. {
  636. //进入订单目录
  637. string subFolder = folderToDelete + "/" + folder;
  638. fw.GotoDirectory(subFolder, true);
  639. //获取文件列表
  640. string[] files = fw.GetFileList("*.*");
  641. if (files != null)
  642. {
  643. //删除文件
  644. foreach (string file in files)
  645. {
  646. fw.Delete(file);
  647. }
  648. }
  649. //删除冲印规格文件夹
  650. fw.GotoDirectory(folderToDelete, true);
  651. fw.RemoveDirectory(folder);
  652. }
  653. }
  654. //删除订单文件夹
  655. string parentFolder = folderToDelete.Remove(folderToDelete.LastIndexOf('/'));
  656. string orderFolder = folderToDelete.Substring(folderToDelete.LastIndexOf('/') + 1);
  657. fw.GotoDirectory(parentFolder, true);
  658. fw.RemoveDirectory(orderFolder);
  659. }
  660. else
  661. {
  662. throw new Exception("FTP 及路径不能为空!");
  663. }
  664. }
  665. catch (Exception ex)
  666. {
  667. throw new Exception("删除订单时发生错误,错误信息为:" + ex.Message);
  668. }
  669. }
  670. }
  671. public class Insert_Standard_ErrorLog
  672. {
  673. public static void Insert(string x, string y)
  674. {
  675. }
  676. }
  677. }