FileInfo.Replace Method (String, String)

Replaces the contents of a specified file with the file described by the current FileInfo object, deleting the original file, and creating a backup of the replaced file.

Namespace: System.IO
Assembly: mscorlib (in mscorlib.dll)

[ComVisibleAttribute(false)] 
public FileInfo Replace (
	string destinationFileName,
	string destinationBackupFileName
)
/** @attribute ComVisibleAttribute(false) */ 
public FileInfo Replace (
	String destinationFileName, 
	String destinationBackupFileName
)
ComVisibleAttribute(false) 
public function Replace (
	destinationFileName : String, 
	destinationBackupFileName : String
) : FileInfo
Not applicable.

Parameters

destinationFileName

The name of a file to replace with the current file.

destinationBackupFileName

The name of a file with which to create a backup of the file described by the destFileName parameter.

Return Value

A FileInfo object that encapsulates information about the file described by the destFileName parameter.

Exception typeCondition

ArgumentException

The path described by the destFileName parameter was not of a legal form.

-or-

The path described by the destBackupFileName parameter was not of a legal form.

ArgumentNullException

The destFileName parameter is a null reference (Nothing in Visual Basic).

FileNotFoundException

The file described by the current FileInfo object could not be found.

-or-

The file described by the destinationFileName parameter could not be found.

PlatformNotSupportedException

The current operating system is not Microsoft Windows NT or later.

The Replace method replaces the contents of a specified file with the contents of the file described by the current FileInfo object. It also creates a backup of the file that was replaced. Finally, it returns a new FileInfo object that describes the overwritten file.

Caution noteCaution:

This method will succeed in Windows 2000 environments if the destFileName is read-only and will not raise an exception. Use the IsReadOnly property to check if the destination file is read-only before attempting to replace it.

Pass a null reference (Nothing in Visual Basic) to the destBackupFileName parameter if you do not want to create a backup of the file being replaced.

The following example uses the Replace method to replace a file with another file and create a backup of the replaced file.

using System;
using System.IO;

namespace FileSystemExample
{
    class FileExample
    {
        public static void Main()
        {
            try
            {
                // originalFile and fileToReplace must contain the path to files that already exist in the  
                // file system. backUpOfFileToReplace is created during the execution of the Replace method.

                string originalFile  = "test.txt";
                string fileToReplace = "test2.txt";
                string backUpOfFileToReplace = "test2.txt.bak";

                if (File.Exists(originalFile) && (File.Exists(fileToReplace)))
                {
                    Console.WriteLine("Move the contents of " + originalFile + " into " + fileToReplace + ", delete "
                        + originalFile + ", and create a backup of " + fileToReplace + ".");

                    // Replace the file.
                    ReplaceFile(originalFile, fileToReplace, backUpOfFileToReplace);

                    Console.WriteLine("Done");
                }
                else
                {
                    Console.WriteLine("Either the file {0} or {1} doesn't " + "exist.", originalFile, fileToReplace);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            Console.ReadLine();
        }

        // Move a file into another file, delete the original, and create a backup of the replaced file.
        public static void ReplaceFile(string fileToMoveAndDelete, string fileToReplace, string backupOfFileToReplace)
        {
            // Create a new FileInfo object.
            FileInfo fInfo = new FileInfo(fileToMoveAndDelete);

            // replace the file.
            fInfo.Replace(fileToReplace, backupOfFileToReplace, false);
        }
    }
}
//Move the contents of test.txt into test2.txt, delete test.txt, and 
//create a backup of test2.txt.
//Done


  • FileIOPermission  Associated enumerations: Read , Write Security Action: Demand. For permission to read and write to the current file and the file described by the destFileName parameter.
  • FileIOPermission  Associated enumeration: Write Security Action: Demand. For permission to write to file described by the destBackupFileName parameter if one is specified.

Windows 98, Windows Server 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0
Show: