If you are asking, if WinSCP can do this automatically for you, the answer is "no".
You need to explicitly check target file existence and rename it before you move the file.
Note that rename and move is the same operation from WinSCP .NET Assembly API perspective. So you use the Session.MoveFile
method for both.
From your question, it's not clear if the server.DoneFilePath
is a path to the target directory (ending with slash /
) or a path to the target file (ending with file name). Assuming it is a path to the target directory only:
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);