/* Mastering Visual C# .NET by Jason Price, Mike Gunderloy Publisher: Sybex; ISBN: 0782129110 */ /* Example15_13.cs illustrates use of MemoryStreams */ using System; using System.Windows.Forms; using System.IO; public class Example15_13 { // SaveMemoryStream saves the MemoryStream as a file public static void SaveMemoryStream( MemoryStream ms, string FileName) { FileStream outStream = File.OpenWrite(FileName); ms.WriteTo(outStream); outStream.Flush(); outStream.Close(); } [STAThread] public static void Main() { // use an open file dialog to get a filename OpenFileDialog dlgOpen = new OpenFileDialog(); dlgOpen.Title="Select file to back up"; if (dlgOpen.ShowDialog() == DialogResult.OK) { // Read the file into a MemoryStream FileStream inStream = File.OpenRead(dlgOpen.FileName); MemoryStream storeStream = new MemoryStream(); // copy all data from in to store storeStream.SetLength(inStream.Length); inStream.Read(storeStream.GetBuffer(), 0, (int)inStream.Length); // clean up storeStream.Flush(); inStream.Close(); // pass the store to a method to write it out SaveMemoryStream(storeStream, dlgOpen.FileName + ".bak"); storeStream.Close(); } } }