This article was previously published under Q312119
This article has been archived. It is offered "as is" and will no longer be updated.
Note Microsoft Visual C++ .NET (2002) supports both the managed code model that is provided by the Microsoft .NET Framework and the unmanaged native Microsoft Windows code model. The information in this article applies only to unmanaged Visual C++ code. Note Microsoft Visual C++ 2005 supports both the managed code model that is provided by the Microsoft .NET Framework and the unmanaged native Microsoft Windows code model.
The following .NET Framework Class Library namespaces are referenced in this article:
When you invoke the Save method of the Bitmap class to overwrite an existing file of the same name, the resulting file is not truncated as expected.
This behavior occurs because the implementation of the Save method does not truncate any already existing file.
To work around this issue, delete the file before you invoke the Bitmap.Save method.
The file can be deleted in Visual Basic .NET or in Visual Basic 2005 and C# by using the System.IO.File.Delete method provided by the .NET Framework in the System.IO namespace.
Steps to reproduce the problem
Create a Bitmap class by using the version of the Bitmap constructor that accepts a file name.
Create a file with the same file name and extension as the target file name to be used in the Save method. Ensure that this file is larger than the file used to construct the Bitmap.
Use the Bitmap.Save operator to save the Bitmap object by using the file name of the file that you created in step 2. Note that the resulting file is a copy of the image file, and that the file size has not changed from that of the pre-existing file.
Note This issue can also occur with the System.Drawing.Image class.
Microsoft .NET Framework 2.0, Microsoft .NET Framework Class Libraries 1.0, Microsoft Visual C++ 2005 Express Edition, Microsoft Visual C++ .NET 2003 Standard Edition, Microsoft Visual C++ .NET 2002 Standard Edition, Microsoft .NET Framework 1.0, Microsoft Visual Basic .NET 2002 Standard Edition, Microsoft Visual Basic 2005, Microsoft Visual C# .NET 2002 Standard Edition, Microsoft Visual C# 2005