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

Latest Images

Trending Articles



Latest Images