Utilizzo dell'assembly .NET di WinSCP per caricare un file. OperationResultBase.Check()
sta gettando il seguente errore:WinSCP: Come assicurarsi che il caricamento SFTP venga rinominato da .zip.filepart in .zip?
WinSCP.SessionRemoteException: Transfer was successfully finished, but temporary transfer file 'testfile.zip.filepart' could not be renamed to target file name 'testfile.zip'. If the problem persists, you may want to turn off transfer resume support.
Sembra che questo accade con qualsiasi file zip che provo a trasmettere. Se fa la differenza, questi sono file zip che sono stati creati usando la libreria DotNetZip.
codice che sto usando, preso praticamente direttamente dall'esempio nella documentazione WinSCP:
public void uploadFile(string filePath, string remotePath)
{
TransferOptions transferOptions = new TransferOptions();
transferOptions.TransferMode = TransferMode.Binary;
TransferOperationResult transferResult;
transferResult = currentSession.PutFiles(filePath, remotePath, false, transferOptions);
transferResult.Check();
foreach (TransferEventArgs transfer in transferResult.Transfers)
{
Console.WriteLine("Upload of {0} succeeded", transfer.FileName);
}
}
Discussion over at the WinSCP forum indica che il gruppo non consente ancora il controllo programmatico di sostegno trasferimento di riprendere. C'è una soluzione per questo?
Sembra strano a me che il caricamento sta usando un nome diverso rispetto al nome del file in realtà desiderata. Hai il controllo su questo? – sarnold
@sarnold, dalla documentazione WinSCP: "Quando si trasferisce un file con il protocollo SFTP, viene prima trasferito in un file temporaneo con estensione .filepart Solo dopo il completamento del trasferimento l'estensione viene rimossa." – sigil
Se si ha accesso al server, è possibile eseguire qualcosa come Process monitor da SysInternals per vedere cosa succede quando termina il caricamento del file. Ad esempio, un programma antivirus potrebbe avviare la scansione del file nel momento in cui il file viene chiuso e continuare ad accedere al file quando si tenta di rinominare. – sgmoore