Open In App

File.Replace(String, String, String, Boolean) Method in C# with Examples

Improve
Improve
Like Article
Like
Save
Share
Report

File.Replace(String, String, String, Boolean) is an inbuilt File class method that is used to replace the contents of a specified destination file with the contents of a source file then it deletes the source file, creates a backup of the replaced file, and optionally ignores merge errors.

Syntax:

public static void Replace (string sourceFileName, string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors); 
 

Parameter: This function accepts four parameters which are illustrated below:

  • sourceFileName: This is the specified source file.
  • destinationFileName: This is the specified destination file whose contents get replaced with the contents of the source file.
  • destinationBackupFileName: This file contains the backup of replaced destination file’s content.
  • ignoreMetadataErrors: This parameter contains boolean value i.e, true to ignore merge errors (such as attributes and access control lists (ACLs)) from the replaced file to the replacement file; otherwise, false.

Exceptions:
 

  • ArgumentException: The path described by the destinationFileName parameter was not of a legal form. OR the path described by the destinationBackupFileName parameter was not of a legal form.
  • ArgumentNullException: The destinationFileName parameter is null.
  • DriveNotFoundException: An invalid drive was specified.
  • FileNotFoundException: The file described by the current FileInfo object could not be found. OR the file described by the destinationBackupFileName parameter could not be found.
  • IOException: An I/O error occurred while opening the file. OR the sourceFileName and destinationFileName parameters specify the same file.
  • PathTooLongException: The specified path, file name, or both exceed the system-defined maximum length.
  • PlatformNotSupportedException: The operating system is Windows 98 Second Edition or earlier and the files’ system is not NTFS.
  • UnauthorizedAccessException: The sourceFileName or destinationFileName parameter specifies a file that is read-only. OR this operation is not supported on the current platform. OR source or destination parameters specify a directory instead of a file. OR the caller does not have the required permission.

Below are the programs to illustrate the File.Replace(String, String, String, Boolean) method.
Program 1: Before running the below code, three files have been created, where source file is file1.txt, destination file is file2.txt and backup file is file3.txt. These files’ contents are shown below-
 

file1.txt

 

file2.txt

 

file3.txt

 

C#




// C# program to illustrate the usage
// of File.Replace(String, String,
// String, Boolean) method
  
// Using System and System.IO namespaces
using System;
using System.IO;
  
class GFG {
    public static void Main()
    {
        // Specifying 3 files
        string sourceFileName = "file1.txt";
        string destinationFileName = "file2.txt";
        string destinationBackupFileName = "file3.txt";
  
        // Calling the Replace() function
        File.Replace(sourceFileName, destinationFileName, 
                        destinationBackupFileName, true);
  
        Console.WriteLine("Replacement process has been done.");
    }
}


Output: 
 

Replacement process has been done.

After running the above code, the above output is shown, the source file is deleted, and the remaining two file’s contents are shown below-
 

file7.txt

 

file8.txt

Program 2: Before running the below code, two files have been created, where source file is file1.txt, destination file is file2.txt and there is no backup file because we do not want to keep backup of the replaced file. These files’ contents are shown below-
 

file1.txt

 

file2.txt

 

C#




// C# program to illustrate the usage
// of File.Replace(String, String, 
// String, Boolean) method
  
// Using System and System.IO namespaces
using System;
using System.IO;
  
class GFG {
    public static void Main()
    {
        // Specifying 2 files
        string sourceFileName = "file1.txt";
        string destinationFileName = "file2.txt";
  
        // Calling the Replace() function with
        // null parameter inplace of backup file because
        // we do not want to keep backup of the
        // replaced file.
        File.Replace(sourceFileName, destinationFileName,
                                            null, false);
  
        Console.WriteLine("Replacement process has been done.");
    }
}


Output: 
 

Replacement process has been done.

After running the above code, the above output is shown, the source file is deleted, and the destination file contents are shown below-
 

file2.txt



Last Updated : 08 Mar, 2021
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads