SftpClientTest.SynchronizeDirectories.cs 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. using System.Diagnostics;
  2. namespace Renci.SshNet.IntegrationTests.OldIntegrationTests
  3. {
  4. /// <summary>
  5. /// Implementation of the SSH File Transfer Protocol (SFTP) over SSH.
  6. /// </summary>
  7. public partial class SftpClientTest : IntegrationTestBase
  8. {
  9. [TestMethod]
  10. [TestCategory("Sftp")]
  11. public void Test_Sftp_SynchronizeDirectories()
  12. {
  13. RemoveAllFiles();
  14. using (var sftp = new SftpClient(SshServerHostName, SshServerPort, User.UserName, User.Password))
  15. {
  16. sftp.Connect();
  17. string uploadedFileName = Path.GetTempFileName();
  18. string sourceDir = Path.GetDirectoryName(uploadedFileName);
  19. string destDir = "/home/sshnet/";
  20. string searchPattern = Path.GetFileName(uploadedFileName);
  21. var upLoadedFiles = sftp.SynchronizeDirectories(sourceDir, destDir, searchPattern);
  22. Assert.IsTrue(upLoadedFiles.Count() > 0);
  23. foreach (var file in upLoadedFiles)
  24. {
  25. Debug.WriteLine(file.FullName);
  26. }
  27. sftp.Disconnect();
  28. }
  29. }
  30. [TestMethod]
  31. [TestCategory("Sftp")]
  32. public void Test_Sftp_BeginSynchronizeDirectories()
  33. {
  34. RemoveAllFiles();
  35. using (var sftp = new SftpClient(SshServerHostName, SshServerPort, User.UserName, User.Password))
  36. {
  37. sftp.Connect();
  38. string uploadedFileName = Path.GetTempFileName();
  39. string sourceDir = Path.GetDirectoryName(uploadedFileName);
  40. string destDir = "/home/sshnet/";
  41. string searchPattern = Path.GetFileName(uploadedFileName);
  42. var asyncResult = sftp.BeginSynchronizeDirectories(sourceDir,
  43. destDir,
  44. searchPattern,
  45. null,
  46. null
  47. );
  48. // Wait for the WaitHandle to become signaled.
  49. asyncResult.AsyncWaitHandle.WaitOne(1000);
  50. var upLoadedFiles = sftp.EndSynchronizeDirectories(asyncResult);
  51. Assert.IsTrue(upLoadedFiles.Count() > 0);
  52. foreach (var file in upLoadedFiles)
  53. {
  54. Debug.WriteLine(file.FullName);
  55. }
  56. // Close the wait handle.
  57. asyncResult.AsyncWaitHandle.Close();
  58. sftp.Disconnect();
  59. }
  60. }
  61. }
  62. }