Пример #1
0
        /// <summary>
        /// 로컬에서 서버로 보낼 파일 목록 추가
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void BtnToServerBasket_Click(object sender, EventArgs e)
        {
            sessionOptions = new SessionOptions
            {
                Protocol              = Protocol.Sftp,
                HostName              = TxtAddress.Text,
                UserName              = TxtID.Text,
                Password              = TxtPassword.Text,
                PortNumber            = Convert.ToInt32(TxtPort.Text),
                SshHostKeyFingerprint = "ssh-rsa 1024 YKV2Oy2ygc1MFwaCwYBohn9cPdrJvPg+2U1n0zJ4A6Q=",
                GiveUpSecurityAndAcceptAnySshHostKey = true
            };

            panel1.Enabled = false;

            using (Session session = new Session())
            {
                session.Open(sessionOptions);
                string         TargetFullPath = TreeServerFileList.SelectedNode.Tag.ToString();
                RemoteFileInfo fileInfo       = await Task.Run(() => session.GetFileInfo(TargetFullPath)); // 비동기로 처리한 것에 큰 의미는 없다.

                if (!fileInfo.IsDirectory)
                {
                    ServerSideFilePathBasket.Add(TreeServerFileList.SelectedNode.Tag.ToString());
                }
            }

            panel1.Enabled = true;
        }
Пример #2
0
        private void BgwDownload_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            panel1.Enabled = true;
            ServerSideFilePathBasket.Clear();
            pForm2.Hide(); // BackgroundWorker 작업이 끝난 시점이라 Main Thread로 이미 작업이 옮겨왔기 때문에 Cross Thread가 발생하지 않는다.

            int selectedNodeLevel = TreeLocalFileList.SelectedNode.Level;
            int selectedNodeIndex = TreeLocalFileList.SelectedNode.Index;
            //TreeLocalFileList.Nodes.RemoveAt(selectedNodeIndex);

            DirectoryInfo SelectedNodeDirectoryInfo = new DirectoryInfo(SelectedLocalPath);
            //TreeLocalFileList.Nodes.Insert(selectedNodeIndex, LocalRecuresiveDirectory(SelectedNodeDirectoryInfo.FullName, SelectedNodeDirectoryInfo.Name));
        }