簡體   English   中英

用C#上傳后的WinSCP Move文件

[英]WinSCP Move file after upload with C#

我正在創建一個SFTP上傳程序。 它運行良好,可以連接到遠程SFTP服務器並按預期上傳文件。 我遇到的問題是,我希望將上傳后的文件移到本地服務器上的新目錄中。 我已經搜索了WinSCP站點並做了google搜索,但是我使用的代碼無法正常工作。 這是我所擁有的:

foreach (TransferEventArgs transfer in transferResult.Transfers)
{
    Console.WriteLine("Upload of {0} succeeded", transfer.FileName);
    session.MoveFile(transfer.FileName, Local_Processed);
}

在日志中,它指出它正在移動文件,但文件保留在原始文件夾中,而已處理的文件夾中沒有任何內容。

Session.MoveFile用於將遠程文件移動到另一個遠程目錄或重命名遠程文件。 它不是用於將遠程文件移動到本地目錄。

要將遠程文件移動到本地目錄,請使用Session.GetFilesremove參數。


雖然對我來說,看來您實際上是想將原始的本地文件(已上傳)移動到另一個本地目錄。 因此,它實際上與WinSCP無關。

要移動本地文件,請使用File.Move

File.Move(transfer.FileName, destinationPath);

這是Martin Prikryl發布后的結局。 在我的第一個僅用於移動文件之后,我不得不添加第二個foreach 我還發現原始原始目錄調用中的*.*必須被忽略掉,因為這也會引起問題。

我最終在我的app.config文件中創建了第二個變量。 它具有與原始目錄變量完全相同的路徑,但沒有*.*作為文件名。

foreach (var file in Directory.GetFiles(OrgPath))
{
    File.Move(file, Path.Combine(Processed, Path.GetFileName(file)));
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM