1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using Aspose.Pdf;
  10. using System.IO;
  11. using System.Diagnostics;
  12. namespace WindowsFormsApplication1
  13. {
  14. public partial class Form1 : Form
  15. {
  16. public Form1()
  17. {
  18. InitializeComponent();
  19. }
  20. private void button1_Click(object sender, EventArgs e)
  21. {
  22. UploadECCInvoice_Intranet("");
  23. }
  24. /// <summary>
  25. /// 内网上传ECC Invoice
  26. /// </summary>
  27. /// <param name="path_ECCInvoice">ECCInvoice的路径</param>
  28. private void UploadECCInvoice_Intranet(string path_ECCInvoice)
  29. {
  30. string destinationFile = @"E:\test\DL180226H012.pdf";//要上传的文件
  31. bool status = false;
  32. //连接
  33. string serverFolder = @"\\192.168.1.188\Evan";
  34. string PWD = "qwe123!@#";//kingdee1!
  35. status = connectState(serverFolder, "Administrator", PWD);
  36. if (status)
  37. {
  38. //共享文件夹的目录
  39. DirectoryInfo theFolder = new DirectoryInfo(serverFolder);
  40. string filename = theFolder.ToString();
  41. //执行方法
  42. TransportRemoteToServer(serverFolder + @"\", destinationFile, "test.pdf"); //实现将远程服务器文件写入到本地
  43. }
  44. else
  45. {
  46. MessageBox.Show("连接服务器失败!");
  47. }
  48. }
  49. /// <summary>
  50. /// 从本地上传文件至服务器
  51. /// </summary>
  52. /// <param name="src">远程服务器路径(共享文件夹路径)</param>
  53. /// <param name="dst">本地文件夹路径</param>
  54. /// <param name="fileName">上传至服务器上的文件名,包含扩展名</param>
  55. public static void TransportRemoteToServer(string src, string dst, string fileName)
  56. {
  57. if (!Directory.Exists(dst))
  58. {
  59. Directory.CreateDirectory(dst);
  60. }
  61. src = src + fileName;
  62. FileStream inFileStream = new FileStream(src, FileMode.OpenOrCreate); //从远程服务器下载到本地的文件
  63. FileStream outFileStream = new FileStream(dst, FileMode.Open); //远程服务器文件 此处假定远程服务器共享文件夹下确实包含本文件,否则程序报错
  64.  
  65. byte[] buf = new byte[outFileStream.Length];
  66. int byteCount;
  67. while ((byteCount = outFileStream.Read(buf, 0, buf.Length)) > 0)
  68. {
  69. inFileStream.Write(buf, 0, byteCount);
  70. }
  71. inFileStream.Flush();
  72. inFileStream.Close();
  73. outFileStream.Flush();
  74. outFileStream.Close();
  75. }
  76. /// <summary>
  77. /// 连接远程共享文件夹
  78. /// </summary>
  79. /// <param name="path">远程共享文件夹的路径</param>
  80. /// <param name="userName">用户名</param>
  81. /// <param name="passWord">密码</param>
  82. /// <returns></returns>
  83. public static bool connectState(string path, string userName, string passWord)
  84. {
  85. bool Flag = false;
  86. Process proc = new Process();
  87. try
  88. {
  89. proc.StartInfo.FileName = "cmd.exe";
  90. proc.StartInfo.UseShellExecute = false;
  91. proc.StartInfo.RedirectStandardInput = true;
  92. proc.StartInfo.RedirectStandardOutput = true;
  93. proc.StartInfo.RedirectStandardError = true;
  94. proc.StartInfo.CreateNoWindow = true;
  95. proc.Start();
  96. proc.StandardInput.WriteLine("net use * /del /y");
  97. string dosLine = "net use " + path + " " + passWord + " /user:" + userName;
  98. proc.StandardInput.WriteLine(dosLine);
  99. proc.StandardInput.WriteLine("exit");
  100. while (!proc.HasExited)
  101. {
  102. proc.WaitForExit(1000);
  103. }
  104. string errormsg = proc.StandardError.ReadToEnd();
  105. proc.StandardError.Close();
  106. if (string.IsNullOrEmpty(errormsg))
  107. {
  108. Flag = true;
  109. }
  110. else
  111. {
  112. throw new Exception(errormsg);
  113. }
  114. }
  115. catch (Exception ex)
  116. {
  117. throw ex;
  118. }
  119. finally
  120. {
  121. proc.Close();
  122. proc.Dispose();
  123. }
  124. return Flag;
  125. }
  126. }
  127. }

一个Demo,将本地的这个E:\test\DL180226H012.pdf文件,上传至\\192.168.1.188\Evan路径下。

版权声明:本文为evanmemo原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/evanmemo/p/8492441.html