public FileTransfer(PscpOptions options, FileTransferRequest request) { this.Options = options; this.Request = request; this.Id = Interlocked.Increment(ref idSeed); }
public void TransferFiles(FileTransferRequest request) { // Expand requests, if needed List<FileTransfer> transfers = new List<FileTransfer>(); if (request.TargetFile.Source == SourceType.Local) { // remote-to-local: Create 1 transfer per source as pscp only allows 1 remote file per op foreach (BrowserFileInfo source in request.SourceFiles) { FileTransferRequest req = new FileTransferRequest { TargetFile = request.TargetFile, Session = request.Session }; req.SourceFiles.Add(source); transfers.Add(new FileTransfer(this.Options, req)); } } else { // local-to-remote: Create 1 transfer for all transfers.Add(new FileTransfer(this.Options, request)); } // Add and start each transfer foreach (FileTransfer transfer in transfers) { AddTransfer(transfer); transfer.Start(); } }
public void TransferFiles(FileTransferRequest fileTransferReqeust) { this.FileTransferPresenter.TransferFiles(fileTransferReqeust); }
private void ResetDragDrop() { this.dragDropLastX = -1; this.dragDropLastY = -1; this.dragDropIsValid = false; this.dragDropFileTransfer = null; }
private void listViewFiles_DragEnter(object sender, DragEventArgs e) { // Check for copy allowed, payload = DataFormats.FileDrop or BrowserFileInfo bool copyAllowed = (e.AllowedEffect & DragDropEffects.Copy) == DragDropEffects.Copy; bool isFile = e.Data.GetDataPresent(DataFormats.FileDrop, false); bool isBrowserFile = e.Data.GetDataPresent(typeof(BrowserFileInfo[])); this.dragDropIsValid = copyAllowed && ( isFile || isBrowserFile); // update effect e.Effect = dragDropIsValid ? DragDropEffects.Copy : DragDropEffects.None; // parse out payload if (this.dragDropIsValid) { this.dragDropFileTransfer = new FileTransferRequest { Session = this.Presenter.Session }; // Get source files (payload) if (e.Data.GetDataPresent(DataFormats.FileDrop)) { // windows files Array files = (Array)e.Data.GetData(DataFormats.FileDrop, false); foreach (string fileName in files) { BrowserFileInfo item = Directory.Exists(fileName) ? new BrowserFileInfo(new DirectoryInfo(fileName)) : new BrowserFileInfo(new FileInfo(fileName)); this.dragDropFileTransfer.SourceFiles.Add(item); } } else if (e.Data.GetDataPresent(typeof(BrowserFileInfo[]))) { // from another browser BrowserFileInfo[] files = (BrowserFileInfo[])e.Data.GetData(typeof(BrowserFileInfo[])); this.dragDropFileTransfer.SourceFiles.AddRange(files); } } Log.DebugFormat( "DragEnter: allowedEffect={0}, effect={1}, isFile={2}, isBrowserFile={3}", e.AllowedEffect, e.Effect, isFile, isBrowserFile); }
public void TransferFiles(FileTransferRequest transfer) { Log.InfoFormat("TransferFiles: {0}", transfer); this.LastRequest = transfer; }