Quantcast
Channel: sshnet Discussions Rss Feed
Viewing all articles
Browse latest Browse all 1729

New Post: Does SftpClient.UploadFile overwrite existing files?

$
0
0

Hi,

Ok, So I looked at it and to achive what you want to to you need to use Open method instead of OpenWrite.

I tried to implemented OpenWrite method similar to File.OpenWrite.

So its behaviour is the same as if you were to use regular files.

I modified your code and ran this but received the same result.

           client.HostKeyReceived += (s, e) =>
            {
                e.CanTrust = true;
            };
            client.Connect();//SftpFileStream _fileStream = client.OpenWrite("final.txt");//var _fileStream = client.Open("final.txt", FileMode.OpenOrCreate | FileMode.Truncate);
            FileStream _fileStream = File.OpenWrite(@"final1.txt");
            FileStream _localFileStream = File.Open(@"big.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);int transferred = 0;int totalToTransfer = 1495368;int lengthTransferred = 0;while (transferred < totalToTransfer)
            {byte[] readBytes = newbyte[65536];
                lengthTransferred = _localFileStream.Read(readBytes, 0, 65536);
                _fileStream.Write(readBytes, 0, lengthTransferred);

                transferred += lengthTransferred;
            }

            _localFileStream.Close();
            _fileStream.Close();

            //_fileStream = client.OpenWrite("final.txt");//_fileStream = client.Open("final.txt", FileMode.OpenOrCreate | FileMode.Truncate);//_fileStream = File.Open(@"final1.txt", FileMode.OpenOrCreate);
            _fileStream = File.OpenWrite(@"final1.txt");
            _localFileStream = File.Open(@"small.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
            transferred = 0;
            totalToTransfer = 128832;
            lengthTransferred = 0;while (transferred < totalToTransfer)
            {byte[] readBytes = newbyte[65536];
                lengthTransferred = _localFileStream.Read(readBytes, 0, 65536);
                _fileStream.Write(readBytes, 0, lengthTransferred);

                transferred += lengthTransferred;
            }

            _localFileStream.Close();
            _fileStream.Close();
        }

If you like, you can use Open method where you can explicitly specify to truncate a new file.

 

Please let me know if you have any more questions or suggestions.

 

Thanks,

Oleg

 

OpenWrite

Viewing all articles
Browse latest Browse all 1729

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>