diff --git a/src/Renci.SshNet/ScpClient.cs b/src/Renci.SshNet/ScpClient.cs index 45aaa367c..90736b99b 100644 --- a/src/Renci.SshNet/ScpClient.cs +++ b/src/Renci.SshNet/ScpClient.cs @@ -824,7 +824,7 @@ private void InternalDownload(IChannelSession channel, Stream input, FileSystemI fileInfo = new FileInfo(Path.Combine(currentDirectoryFullName, fileName)); } - using (var output = fileInfo.OpenWrite()) + using (var output = fileInfo.Open(FileMode.Create, FileAccess.Write)) { InternalDownload(channel, input, output, fileName, length); } diff --git a/test/Renci.SshNet.IntegrationTests/ScpTests.cs b/test/Renci.SshNet.IntegrationTests/ScpTests.cs index 2df8eef46..590837e4e 100644 --- a/test/Renci.SshNet.IntegrationTests/ScpTests.cs +++ b/test/Renci.SshNet.IntegrationTests/ScpTests.cs @@ -679,7 +679,8 @@ public void Scp_Download_FileInfo_ExistingFile(IRemotePathTransformation remoteP } } - var fileInfo = new FileInfo(Path.GetTempFileName()); + // Create a local file larger than the remote file in order to test truncation. + var fileInfo = new FileInfo(CreateTempFile(size + 64)); try {