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.

695 lines
26 KiB

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