2017-08-31 282 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.

[随意删除,不能发表评论]