2017-08-31 198 views
-1

我試圖從服務器上傳文件並使用SSH.NET成功上傳,但是當sftp客戶端斷開時,文件將自動從SFTP服務器中刪除。 我使用下面的代碼從服務器上自動刪除SFTP上傳的文件

public void Upload(string filePath) 
    { 
     try 
     { 

      using (var client = new SftpClient(host, port, username, password)) 
      { 
       client.Connect(); 

       client.ChangeDirectory(workingdirectory); 

       using (var fileStream = new FileStream(uploadfile, FileMode.Open)) 
       { 
        client.BufferSize = 4 * 1024; 
        client.UploadFile(fileStream, Path.GetFileName(uploadfile)); 
       }     
      } 
     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 
    } 
+0

你確定嗎?有些服務是在撿起它們嗎? – john

+0

沒有選擇文件的服務。當我手動將文件移動到FTP服務器時,它仍然存在,當我使用C#代碼上傳文件時,它在sftp客戶端斷開連接後刪除。 –

+0

尋找/嘗試的東西:1)你是否100%正面使用相同的主機,端口,用戶名和密碼? 2)我想這是SSH.NET,所以請在上傳後添加一個'client.Disconnect()'。 3)嘗試在同一個連接上下載文件(在'using'塊結束之前) – Jcl

回答

0

上傳可能無法完成,您關閉連接之後被刪除。不知道你正在使用的庫,但可能有一個缺少的Flush()調用?

C.

[隨意刪除,不能發表評論]

相關問題