当前位置: 首页>>代码示例>>C#>>正文


C# SftpClient.BeginDownloadFile方法代码示例

本文整理汇总了C#中SftpClient.BeginDownloadFile方法的典型用法代码示例。如果您正苦于以下问题:C# SftpClient.BeginDownloadFile方法的具体用法?C# SftpClient.BeginDownloadFile怎么用?C# SftpClient.BeginDownloadFile使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在SftpClient的用法示例。


在下文中一共展示了SftpClient.BeginDownloadFile方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Test_Sftp_BeginDownloadFile_FileNameIsWhiteSpace

 public void Test_Sftp_BeginDownloadFile_FileNameIsWhiteSpace()
 {
     using (var sftp = new SftpClient(Resources.HOST, Resources.USERNAME, Resources.PASSWORD))
     {
         sftp.Connect();
         sftp.BeginDownloadFile("   ", new MemoryStream(), null, null);
         sftp.Disconnect();
     }
 }
开发者ID:REALTOBIZ,项目名称:SSH.NET,代码行数:9,代码来源:SftpClientTest.Download.cs

示例2: Test_Sftp_BeginDownloadFile_StreamIsNull

 public void Test_Sftp_BeginDownloadFile_StreamIsNull()
 {
     using (var sftp = new SftpClient(Resources.HOST, Resources.USERNAME, Resources.PASSWORD))
     {
         sftp.Connect();
         sftp.BeginDownloadFile("aaaa", null, null, null);
         sftp.Disconnect();
     }
 }
开发者ID:REALTOBIZ,项目名称:SSH.NET,代码行数:9,代码来源:SftpClientTest.Download.cs

示例3: Test_Sftp_Ensure_Async_Delegates_Called_For_BeginFileUpload_BeginFileDownload_BeginListDirectory

        public void Test_Sftp_Ensure_Async_Delegates_Called_For_BeginFileUpload_BeginFileDownload_BeginListDirectory()
        {
            using (var sftp = new SftpClient(Resources.HOST, Resources.USERNAME, Resources.PASSWORD))
            {
                sftp.Connect();

                string remoteFileName = Path.GetRandomFileName();
                string localFileName = Path.GetRandomFileName();
                bool uploadDelegateCalled = false;
                bool downloadDelegateCalled = false;
                bool listDirectoryDelegateCalled = false;
                IAsyncResult asyncResult;

                // Test for BeginUploadFile.

                CreateTestFile(localFileName, 1);

                using (var fileStream = File.OpenRead(localFileName))
                {
                    asyncResult = sftp.BeginUploadFile(fileStream, remoteFileName, delegate(IAsyncResult ar)
                    {
                        sftp.EndUploadFile(ar);
                        uploadDelegateCalled = true;
                    }, null);

                    while (!asyncResult.IsCompleted)
                    {
                        Thread.Sleep(500);
                    }
                }

                File.Delete(localFileName);

                Assert.IsTrue(uploadDelegateCalled, "BeginUploadFile");

                // Test for BeginDownloadFile.

                asyncResult = null;
                using (var fileStream = File.OpenWrite(localFileName))
                {
                    asyncResult = sftp.BeginDownloadFile(remoteFileName, fileStream, delegate(IAsyncResult ar)
                    {
                        sftp.EndDownloadFile(ar);
                        downloadDelegateCalled = true;
                    }, null);

                    while (!asyncResult.IsCompleted)
                    {
                        Thread.Sleep(500);
                    }
                }

                File.Delete(localFileName);

                Assert.IsTrue(downloadDelegateCalled, "BeginDownloadFile");

                // Test for BeginListDirectory.

                asyncResult = null;
                asyncResult = sftp.BeginListDirectory(sftp.WorkingDirectory, delegate(IAsyncResult ar)
                {
                    sftp.EndListDirectory(ar);
                    listDirectoryDelegateCalled = true;
                }, null);

                while (!asyncResult.IsCompleted)
                {
                    Thread.Sleep(500);
                }

                Assert.IsTrue(listDirectoryDelegateCalled, "BeginListDirectory");
            }
        }
开发者ID:pecegit,项目名称:sshnet,代码行数:73,代码来源:SftpClientTest.Upload.cs

示例4: Test_Sftp_Multiple_Async_Upload_And_Download_10Files_5MB_Each

        public void Test_Sftp_Multiple_Async_Upload_And_Download_10Files_5MB_Each()
        {
            var maxFiles = 10;
            var maxSize = 5;

            using (var sftp = new SftpClient(Resources.HOST, Resources.USERNAME, Resources.PASSWORD))
            {
                sftp.Connect();

                var testInfoList = new Dictionary<string, TestInfo>();

                for (int i = 0; i < maxFiles; i++)
                {
                    var testInfo = new TestInfo();
                    testInfo.UploadedFileName = Path.GetTempFileName();
                    testInfo.DownloadedFileName = Path.GetTempFileName();
                    testInfo.RemoteFileName = Path.GetRandomFileName();

                    this.CreateTestFile(testInfo.UploadedFileName, maxSize);

                    //  Calculate hash value
                    testInfo.UploadedHash = CalculateMD5(testInfo.UploadedFileName);

                    testInfoList.Add(testInfo.RemoteFileName, testInfo);
                }

                var uploadWaitHandles = new List<WaitHandle>();

                //  Start file uploads
                foreach (var remoteFile in testInfoList.Keys)
                {
                    var testInfo = testInfoList[remoteFile];
                    testInfo.UploadedFile = File.OpenRead(testInfo.UploadedFileName);

                    testInfo.UploadResult = sftp.BeginUploadFile(testInfo.UploadedFile,
                        remoteFile,
                        null,
                        null) as SftpUploadAsyncResult;

                    uploadWaitHandles.Add(testInfo.UploadResult.AsyncWaitHandle);
                }

                //  Wait for upload to finish
                bool uploadCompleted = false;
                while (!uploadCompleted)
                {
                    //  Assume upload completed
                    uploadCompleted = true;

                    foreach (var testInfo in testInfoList.Values)
                    {
                        var sftpResult = testInfo.UploadResult;

                        if (!testInfo.UploadResult.IsCompleted)
                        {
                            uploadCompleted = false;
                        }
                    }
                    Thread.Sleep(500);
                }

                //  End file uploads
                foreach (var remoteFile in testInfoList.Keys)
                {
                    var testInfo = testInfoList[remoteFile];

                    sftp.EndUploadFile(testInfo.UploadResult);
                    testInfo.UploadedFile.Dispose();
                }

                //  Start file downloads

                var downloadWaitHandles = new List<WaitHandle>();

                foreach (var remoteFile in testInfoList.Keys)
                {
                    var testInfo = testInfoList[remoteFile];
                    testInfo.DownloadedFile = File.OpenWrite(testInfo.DownloadedFileName);
                    testInfo.DownloadResult = sftp.BeginDownloadFile(remoteFile,
                        testInfo.DownloadedFile,
                        null,
                        null) as SftpDownloadAsyncResult;

                    downloadWaitHandles.Add(testInfo.DownloadResult.AsyncWaitHandle);
                }

                //  Wait for download to finish
                bool downloadCompleted = false;
                while (!downloadCompleted)
                {
                    //  Assume download completed
                    downloadCompleted = true;

                    foreach (var testInfo in testInfoList.Values)
                    {
                        var sftpResult = testInfo.DownloadResult;

                        if (!testInfo.DownloadResult.IsCompleted)
                        {
                            downloadCompleted = false;
//.........这里部分代码省略.........
开发者ID:pecegit,项目名称:sshnet,代码行数:101,代码来源:SftpClientTest.Upload.cs

示例5: DownloadFilesFromServer

                private void DownloadFilesFromServer()
                {
                    try
                    {
                        var filelist = new Dictionary<SftpFile, string>();
                        var remfold = txtRemoteFolderPath.Text.EndsWith("/") ? txtRemoteFolderPath.Text : txtRemoteFolderPath.Text += "/";
                        var ssh = new SftpClient(txtHost.Text, int.Parse(txtPort.Text), txtUser.Text, txtPassword.Text);
                        ssh.Connect();
                        foreach (var i in lvSSHFileBrowser.SelectedItems.Cast<EXImageListViewItem>().Select(item => item.Tag as SftpFile))
                        {
                            if (i.IsRegularFile)
                            {
                                filelist.Add(i, Path.Combine(txtLocalBrowserPath.Text, i.Name));
                            }
                            if (i.IsDirectory)
                            {
                                foreach (var file in GetFilesRecur(ssh, i))
                                {
                                    var i1 = file.FullName.Replace(remfold, "");
                                    var i2 = i1.Replace('/', '\\');
                                    var i3 = Path.Combine(txtLocalBrowserPath.Text, i2);
                                    filelist.Add(file, i3);
                                }
                            }
                        }
                        long totalsize = filelist.Sum(pair => pair.Key.Length);
                        var result = MessageBox.Show(string.Format(Language.SSHTransfer_DownloadFilesFromServer_Download__0__in__1__files_ + "\r\n" + Language.SSHTransfer_DownloadFilesFromServer_Destination_directory__2_, Tools.Misc.LengthToHumanReadable(totalsize), filelist.Count, txtLocalBrowserPath.Text), "Downloading", MessageBoxButtons.YesNoCancel);
                        if (result!=DialogResult.Yes)
                        {
                            EnableButtons();
                            return;
                        }
                        long totaluploaded = 0;
                        ThreadPool.QueueUserWorkItem(state =>
                            {
                                foreach (var file in filelist)
                                {
                                    if (!Directory.Exists(Path.GetDirectoryName(file.Value)))
                                    {
                                        Tools.Misc.ebfFolderCreate(Path.GetDirectoryName(file.Value));
                                    }
                                    var asynch = ssh.BeginDownloadFile(file.Key.FullName,
                                                                       new FileStream(file.Value, FileMode.Create));
                                    var sftpAsynch = asynch as SftpDownloadAsyncResult;

                                    while (!sftpAsynch.IsCompleted)
                                    {
                                        SetProgressStatus(totaluploaded + (long)sftpAsynch.DownloadedBytes, totalsize);
                                    }
                                    totaluploaded += file.Key.Length;
                                    ssh.EndDownloadFile(asynch);
                                }
                                EnableButtons();
                                ssh.Disconnect();
                                MessageBox.Show(Language.SSHTransfer_DownloadFilesFromServer_Download_finished);
                            });
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }
开发者ID:jpmarques,项目名称:mRemoteNC,代码行数:62,代码来源:UI.Window.SSHTransfer.cs

示例6: Test_Sftp_EndDownloadFile_Invalid_Async_Handle

 public void Test_Sftp_EndDownloadFile_Invalid_Async_Handle()
 {
     using (var sftp = new SftpClient(Resources.HOST, Resources.USERNAME, Resources.PASSWORD))
     {
         sftp.Connect();
         var filename = Path.GetTempFileName();
         this.CreateTestFile(filename, 1);
         sftp.UploadFile(File.OpenRead(filename), "test123");
         var async1 = sftp.BeginListDirectory("/", null, null);
         var async2 = sftp.BeginDownloadFile("test123", new MemoryStream(), null, null);
         sftp.EndDownloadFile(async1);
     }
 }
开发者ID:REALTOBIZ,项目名称:SSH.NET,代码行数:13,代码来源:SftpClientTest.Download.cs

示例7: BeginDownloadFileTest

 public void BeginDownloadFileTest()
 {
     ConnectionInfo connectionInfo = null; // TODO: Initialize to an appropriate value
     SftpClient target = new SftpClient(connectionInfo); // TODO: Initialize to an appropriate value
     string path = string.Empty; // TODO: Initialize to an appropriate value
     Stream output = null; // TODO: Initialize to an appropriate value
     AsyncCallback asyncCallback = null; // TODO: Initialize to an appropriate value
     object state = null; // TODO: Initialize to an appropriate value
     Action<ulong> downloadCallback = null; // TODO: Initialize to an appropriate value
     IAsyncResult expected = null; // TODO: Initialize to an appropriate value
     IAsyncResult actual;
     actual = target.BeginDownloadFile(path, output, asyncCallback, state, downloadCallback);
     Assert.AreEqual(expected, actual);
     Assert.Inconclusive("Verify the correctness of this test method.");
 }
开发者ID:pecegit,项目名称:sshnet,代码行数:15,代码来源:SftpClientTest.cs


注:本文中的SftpClient.BeginDownloadFile方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。