System.IO.FileInfo.CopyTo 方法 (String)
方法描述
将现有文件复制到新文件,不允许覆盖现有文件。
语法定义(C# System.IO.FileInfo.CopyTo 方法 (String) 的用法)
public FileInfo CopyTo( string destFileName )
参数/返回值
参数值/返回值 | 参数类型/返回类型 | 参数描述/返回描述 |
---|---|---|
destFileName | System-String | 要复制到的新文件的名称。 |
返回值 | System.IO.FileInfo | 带有完全限定路径的新文件。 |
提示和注释
使用 CopyTo 方法以允许覆盖现有文件。
警告
在使用此方法时尽量避免使用短文件名(例如 XXXXXX~1.XXX)。 如果两个文件的短文件名等效,则此方法可能失败并引发异常,并且(或者)导致不需要的行为。
System.IO.FileInfo.CopyTo 方法 (String)例子
下面的示例演示了如何将一个文件复制到另一文件,如果目标文件已存在则引发异常。
using System; using System.IO; public class CopyToTest { public static void Main() { try { // Create a reference to a file, which might or might not exist. // If it does not exist, it is not yet created. FileInfo fi = new FileInfo("temp.txt"); // Create a writer, ready to add entries to the file. StreamWriter sw = fi.AppendText(); sw.WriteLine("Add as many lines as you like..."); sw.WriteLine("Add another line to the output..."); sw.Flush(); sw.Close(); // Get the information out of the file and display it. StreamReader sr = new StreamReader(fi.OpenRead()); Console.WriteLine("This is the information in the first file:"); while (sr.Peek() != -1) Console.WriteLine(sr.ReadLine()); // Copy this file to another file. The file will not be overwritten if it already exists. FileInfo newfi = fi.CopyTo("newTemp.txt"); // Get the information out of the new file and display it. sr = new StreamReader(newfi.OpenRead()); Console.WriteLine("{0}This is the information in the second file:", Environment.NewLine); while (sr.Peek() != -1) Console.WriteLine(sr.ReadLine()); } catch(Exception e) { Console.WriteLine(e.Message); } } } //This code produces output similar to the following; //results may vary based on the computer/file structure/etc.: // //This is the information in the first file: //Add as many lines as you like... //Add another line to the output... //This is the information in the second file: //Add as many lines as you like... //Add another line to the output...
异常
异常 | 异常描述 |
---|---|
ArgumentException | destFileName 为空,仅包含空白,或包含无效字符。 |
IOException | 发生错误或目标文件已经存在。 |
SecurityException | 调用方没有所要求的权限。 |
ArgumentNullException | destFileName 为 null。 |
UnauthorizedAccessException | 传入了一个目录路径,或者正在将文件移动到另一个驱动器。 |
DirectoryNotFoundException | destFileName 中指定的目录不存在。 |
PathTooLongException | 指定的路径、文件名或者两者都超出了系统定义的最大长度。 例如,在基于 Windows 的平台上,路径必须小于 248 个字符,文件名必须小于 260 个字符。 |
NotSupportedException | destFileName 在字符串内包含一个冒号 (:),但未指定卷。 |
版本信息
.NET Framework 受以下版本支持:4、3.5、3.0、2.0、1.1、1.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1
适用平台
Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。