public void CopyObject(Uri sourceUri, Uri destinationUri)
{
CheckUri(sourceUri);
CheckUri(destinationUri);
var cleanedDestinationPath = destinationUri.LocalPath.Remove(destinationUri.LocalPath.TrimEnd('\\', '/').LastIndexOfAny(new[] { '\\', '/' }));
Directory.CreateDirectory(cleanedDestinationPath);
using (FileStream readStream = new FileStream(sourceUri.LocalPath, FileMode.Open, FileAccess.Read))
{
using (FileStream writeStream = new FileStream(destinationUri.LocalPath, FileMode.Create, FileAccess.Write))
{
readStream.CopyTo(writeStream);
readStream.Flush();
writeStream.Flush(true);
readStream.Close();
writeStream.Close();
}
}
}