FileInfo.CopyTo メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
既存のファイルを新しいファイルにコピーします。
オーバーロード
| 名前 | 説明 |
|---|---|
| CopyTo(String) |
既存のファイルを新しいファイルにコピーし、既存のファイルの上書きを禁止します。 |
| CopyTo(String, Boolean) |
既存のファイルを新しいファイルにコピーし、既存のファイルを上書きできるようにします。 |
CopyTo(String)
- ソース:
- FileInfo.cs
- ソース:
- FileInfo.cs
- ソース:
- FileInfo.cs
- ソース:
- FileInfo.cs
- ソース:
- FileInfo.cs
既存のファイルを新しいファイルにコピーし、既存のファイルの上書きを禁止します。
public:
System::IO::FileInfo ^ CopyTo(System::String ^ destFileName);
public System.IO.FileInfo CopyTo(string destFileName);
member this.CopyTo : string -> System.IO.FileInfo
Public Function CopyTo (destFileName As String) As FileInfo
パラメーター
- destFileName
- String
コピー先の新しいファイルの名前。
返品
完全修飾パスを持つ新しいファイル。
例外
.NET Framework および .NET Core バージョン 2.1 より前のバージョン: destFileName が空であるか、空白のみを含むか、無効な文字が含まれています。
エラーが発生するか、コピー先ファイルが既に存在します。
呼び出し元に必要なアクセス許可がありません。
destFileName は nullです。
ディレクトリ パスが渡されているか、ファイルが別のドライブに移動されています。
destFileNameで指定されたディレクトリが存在しません。
指定したパス、ファイル名、またはその両方が、システム定義の最大長を超えています。
destFileName には、文字列内にコロン (:)が含まれていますが、ボリュームは指定されていません。
例
次の例では、 CopyTo メソッドの両方のオーバーロードを示します。
using System;
using System.IO;
class Test
{
public static void Main()
{
string path = @"c:\SoureFile.txt";
string path2 = @"c:\NewFile.txt";
FileInfo fi1 = new FileInfo(path);
FileInfo fi2 = new FileInfo(path2);
try
{
// Create the source file.
using (FileStream fs = fi1.Create()) { }
//Ensure that the target file does not exist.
if (File.Exists(path2))
{
fi2.Delete();
}
//Copy the file.f
fi1.CopyTo(path2);
Console.WriteLine("{0} was copied to {1}.", path, path2);
}
catch (IOException ioex)
{
Console.WriteLine(ioex.Message);
}
}
}
Imports System.IO
Public Class Test
Public Shared Sub Main()
'Specify the directories you want to manipulate.
Dim path As String = "c:\SourceFile.txt"
Dim path2 As String = "c:\NewFile.txt"
Dim fi As FileInfo = New FileInfo(path)
Dim fi2 As FileInfo = New FileInfo(path2)
Try
Using fs As FileStream = fi.Create()
End Using
'Ensure that the target does not exist.
If File.Exists(path2) Then
fi2.Delete()
End If
'Copy the file.
fi.CopyTo(path2)
Console.WriteLine("{0} was copied to {1}.", path, path2)
Catch ioex As IOException
Console.WriteLine(ioex.Message)
End Try
End Sub
End Class
次の例では、1 つのファイルを別のファイルにコピーし、コピー先のファイルが既に存在する場合に例外をスローする方法を示します。
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...
Imports System.IO
Public Class CopyToTest
Public Shared Sub Main()
Try
' Create a reference to a file, which might or might not exist.
' If it does not exist, it is not yet created.
Dim fi As New FileInfo("temp.txt")
' Create a writer, ready to add entries to the file.
Dim sw As StreamWriter = 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.
Dim sr As New StreamReader(fi.OpenRead())
Console.WriteLine("This is the information in the first file:")
While sr.Peek() <> -1
Console.WriteLine(sr.ReadLine())
End While
' Copy this file to another file.
Dim newfi As FileInfo = 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())
End While
Catch e As Exception
Console.WriteLine(e.Message)
End Try
End Sub
End Class
'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...
注釈
既存のファイルの上書きを許可するには、 CopyTo(String, Boolean) メソッドを使用します。
Caution
可能な限り、このメソッドで短いファイル名 (XXXXXX~1.XXX など) を使用しないでください。 2 つのファイルに同等の短いファイル名がある場合、このメソッドは失敗し、例外が発生したり、望ましくない動作が発生したりする可能性があります。
こちらもご覧ください
適用対象
CopyTo(String, Boolean)
- ソース:
- FileInfo.cs
- ソース:
- FileInfo.cs
- ソース:
- FileInfo.cs
- ソース:
- FileInfo.cs
- ソース:
- FileInfo.cs
既存のファイルを新しいファイルにコピーし、既存のファイルを上書きできるようにします。
public:
System::IO::FileInfo ^ CopyTo(System::String ^ destFileName, bool overwrite);
public System.IO.FileInfo CopyTo(string destFileName, bool overwrite);
member this.CopyTo : string * bool -> System.IO.FileInfo
Public Function CopyTo (destFileName As String, overwrite As Boolean) As FileInfo
パラメーター
- destFileName
- String
コピー先の新しいファイルの名前。
- overwrite
- Boolean
true 既存のファイルを上書きできるようにする場合。それ以外の場合は false。
返品
新しいファイル、または overwrite が trueされている場合は既存のファイルの上書き。 ファイルが存在し、 overwrite が falseされている場合は、 IOException がスローされます。
例外
.NET Framework および .NET Core バージョン 2.1 より前のバージョン: destFileName が空であるか、空白のみを含むか、無効な文字が含まれています。
エラーが発生するか、コピー先ファイルが既に存在し、 overwrite が false。
呼び出し元に必要なアクセス許可がありません。
destFileName は nullです。
destFileNameで指定されたディレクトリが存在しません。
ディレクトリ パスが渡されているか、ファイルが別のドライブに移動されています。
指定したパス、ファイル名、またはその両方が、システム定義の最大長を超えています。
destFileName には、文字列の中央にコロン (:)が含まれています。
例
次の例では、 CopyTo メソッドの両方のオーバーロードを示します。
using System;
using System.IO;
class Test
{
public static void Main()
{
string path = @"c:\SoureFile.txt";
string path2 = @"c:\NewFile.txt";
FileInfo fi1 = new FileInfo(path);
FileInfo fi2 = new FileInfo(path2);
try
{
// Create the source file.
using (FileStream fs = fi1.Create()) { }
//Ensure that the target file does not exist.
if (File.Exists(path2))
{
fi2.Delete();
}
//Copy the file.f
fi1.CopyTo(path2);
Console.WriteLine("{0} was copied to {1}.", path, path2);
}
catch (IOException ioex)
{
Console.WriteLine(ioex.Message);
}
}
}
Imports System.IO
Public Class Test
Public Shared Sub Main()
'Specify the directories you want to manipulate.
Dim path As String = "c:\SourceFile.txt"
Dim path2 As String = "c:\NewFile.txt"
Dim fi As FileInfo = New FileInfo(path)
Dim fi2 As FileInfo = New FileInfo(path2)
Try
Using fs As FileStream = fi.Create()
End Using
'Ensure that the target does not exist.
If File.Exists(path2) Then
fi2.Delete()
End If
'Copy the file.
fi.CopyTo(path2)
Console.WriteLine("{0} was copied to {1}.", path, path2)
Catch ioex As IOException
Console.WriteLine(ioex.Message)
End Try
End Sub
End Class
次の例では、あるファイルを別のファイルにコピーし、既に存在するファイルを上書きするかどうかを指定します。
using System;
using System.IO;
public class CopyToTest
{
public static void Main()
{
// 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 true parameter specifies
// that the file will be overwritten if it already exists.
FileInfo newfi = fi.CopyTo("newTemp.txt", true);
// 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() );
}
}
//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...
//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...
//Add as many lines as you like...
//Add another line to the output...
Imports System.IO
Public Class CopyToTest
Public Shared Sub Main()
' Create a reference to a file, which might or might not exist.
' If it does not exist, it is not yet created.
Dim fi As New FileInfo("temp.txt")
' Create a writer, ready to add entries to the file.
Dim sw As StreamWriter = 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.
Dim sr As New StreamReader(fi.OpenRead())
Console.WriteLine("This is the information in the first file:")
While sr.Peek() <> -1
Console.WriteLine(sr.ReadLine())
End While
' Copy this file to another file. The true parameter specifies
' that the file will be overwritten if it already exists.
Dim newfi As FileInfo = fi.CopyTo("newTemp.txt", True)
' 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())
End While
End Sub
End Class
'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...
'
注釈
既存のファイルの上書きを許可または禁止するには、このメソッドを使用します。 既定で既存のファイルが上書きされないようにするには、 CopyTo(String) メソッドを使用します。
Caution
可能な限り、このメソッドで短いファイル名 (XXXXXX~1.XXX など) を使用しないでください。 2 つのファイルに同等の短いファイル名がある場合、このメソッドは失敗し、例外が発生したり、望ましくない動作が発生したりする可能性があります。