File.Replace(String, String, String, Boolean) 是一个内置的 File 类方法,用于将指定目标文件的内容替换为源文件的内容,然后删除源文件,创建被替换的文件的备份文件,并可选择忽略合并错误。
用法:
public static void Replace (string sourceFileName, string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors);
参数:该函数接受四个参数,如下所示:
- 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.
异常:
- ArgumentException:destinationFileName 参数描述的路径不是合法形式。或者 destinationBackupFileName 参数描述的路径不是合法形式。
- ArgumentNullException:destinationFileName 参数为空。
- DriveNotFoundException:指定的驱动器无效。
- FileNotFoundException:找不到当前 FileInfo 对象描述的文件。或者找不到destinationBackupFileName 参数描述的文件。
- IOException:打开文件时发生 I/O 错误。或 sourceFileName 和 destinationFileName 参数指定相同的文件。
- PathTooLongException:指定的路径,文件名或两者都超过了system-defined的最大长度。
- PlatformNotSupportedException:操作系统为Windows 98 Second Edition或更早版本,文件系统不是NTFS。
- UnauthorizedAccessException:sourceFileName 或 destinationFileName 参数指定只读文件。 OR 当前平台不支持此操作。 OR 源或目标参数指定目录而不是文件。或者调用者没有所需的权限。
下面是说明 File.Replace(String, String, String, Boolean) 方法的程序。
程序1:在运行下面的代码之前,已经创建了三个文件,其中源文件是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.");
}
}
输出:
Replacement process has been done.
运行上述代码后,显示如上输出,源文件被删除,剩下的两个文件的内容如下所示——
程序2:在运行以下代码之前,已经创建了两个文件,其中源文件是 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.");
}
}
输出:
Replacement process has been done.
运行上述代码后,显示如上输出,源文件被删除,目标文件内容如下所示——
相关用法
- C# Boolean.CompareTo(Boolean)用法及代码示例
- C# Boolean.Equals(Boolean)用法及代码示例
- C# File.Copy(String, String, Boolean)用法及代码示例
- C# Boolean.GetHashCode()用法及代码示例
- C# Boolean.GetTypeCode用法及代码示例
- C# Boolean.TryParse()用法及代码示例
- C# Boolean.Parse()用法及代码示例
- C# Boolean.ToString(IFormatProvider)用法及代码示例
- C# Boolean.Equals(Object)用法及代码示例
- C# Boolean.CompareTo(Object)用法及代码示例
- C# Boolean.ToString()用法及代码示例
- C# File.Replace(String, String, String)用法及代码示例
- C# File.Copy(String, String)用法及代码示例
- C# File.AppendAllText(String, String)用法及代码示例
- C# File.AppendAllText(String, String, Encoding)用法及代码示例
- C# File.WriteAllText(String, String)用法及代码示例
- C# File.WriteAllText(String, String, Encoding)用法及代码示例
- C# File.WriteAllLines(String, String[], Encoding)用法及代码示例
- C# File.WriteAllLines(String, String[])用法及代码示例
- C# File.WriteAllLines(String, IEnumerable<String>, Encoding)用法及代码示例
- C# File.WriteAllLines(String, IEnumerable<String>)用法及代码示例
- C# File.AppendAllLines(String, IEnumerable<String>, Encoding)用法及代码示例
- C# File.AppendAllLines(String, IEnumerable<String>)用法及代码示例
注:本文由纯净天空筛选整理自Kanchan_Ray大神的英文原创作品 File.Replace(String, String, String, Boolean) Method in C# with Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。