簡體   English   中英

當目標文件已經存在時,如何使用WinSCP .NET程序集移動/重命名文件?

[英]How to move/rename file using WinSCP .NET Assembly when target file exist already?

我正在使用WinSCP .NET程序集(C#)開發SFTP文件傳輸項目。

我想在服務器中移動文件。 這是代碼:

session.MoveFile(server.RemoteDownloadPath + fileInfo.Name, server.DoneFilePath);
Console.WriteLine("Move File {0} to {1}", fileInfo.Name, server.DoneFilePath);

如果當前移動文件位於目標路徑中,則不會移動。 所以我想重命名文件並移動它。

有什么辦法嗎?

如果您詢問WinSCP是否可以為您自動執行此操作,答案為“否”。

在移動文件之前,您需要顯式檢查目標文件是否存在並重命名。

請注意,從WinSCP .NET Assembly API角度來看,重命名和移動是相同的操作。 因此,您都可以使用Session.MoveFile方法

從您的問題來看,還不清楚server.DoneFilePath是目標目錄的路徑(以斜杠/結尾)還是目標文件的路徑(以文件名結尾)。 假設它僅是目標目錄的路徑:

string doneFile = server.DoneFilePath + fileInfo.Name;
if (session.FileExists(doneFile))
{
    session.MoveFile(doneFile, doneFile  + ".bak");
}

// carry on with your move code:
session.MoveFile(server.RemoteDownloadPath + fileInfo.Name, server.DoneFilePath);

暫無
暫無

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

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