FileInfo.CopyTo メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
既存のファイルを新しいファイルにコピーします。
オーバーロード
CopyTo(String) |
既存のファイルを上書きできないようにして、既存のファイルを新しいファイルにコピーします。 |
CopyTo(String, Boolean) |
既存のファイルを上書きできるようにして、既存のファイルを新しいファイルにコピーします。 |
CopyTo(String)
- ソース:
- 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
コピー先の新しいファイルの名前。
戻り値
完全修飾パスを含む新しいファイル。
例外
2.1 より前のバージョンの.NET Frameworkと .NET Core: destFileName
が空であるか、空白のみを含んでいるか、無効な文字が含まれています。
エラーが発生したか、リンク先ファイルが既に存在します。
呼び出し元に、必要なアクセス許可がありません。
destFileName
が null
です。
ディレクトリ パスが渡されるか、ファイルが別のドライブに移動されています。
destFileName
で指定されたディレクトリが存在しません。
指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。
destFileName
の文字列内にコロン (:) が含まれていますが、ボリュームを指定していません。
例
次の例では、 メソッドの両方のオーバーロードを CopyTo
示します。
using namespace System;
using namespace System::IO;
int main()
{
String^ path = "c:\\MyTest.txt";
String^ path2 = "c:\\MyTest.txttemp";
FileInfo^ fi1 = gcnew FileInfo( path );
FileInfo^ fi2 = gcnew FileInfo( path2 );
try
{
// Create the file and clean up handles.
FileStream^ fs = fi1->Create();
if ( fs )
delete (IDisposable^)fs;
//Ensure that the target does not exist.
fi2->Delete();
//Copy the file.
fi1->CopyTo( path2 );
Console::WriteLine( "{0} was copied to {1}.", path, path2 );
//Try to copy it again, which should succeed.
fi1->CopyTo( path2, true );
Console::WriteLine( "The second Copy operation succeeded, which is expected." );
}
catch ( Exception^ )
{
Console::WriteLine( "Double copying was not allowed, which is not expected." );
}
}
//This code produces output similar to the following;
//results may vary based on the computer/file structure/etc.:
//
//The second Copy operation succeeded, which is expected.
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 namespace System;
using namespace System::IO;
int 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 = gcnew 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 = gcnew 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:
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) 使用して、既存のファイルの上書きを許可します。
注意事項
可能な限り、このメソッドで短いファイル名 (XXXXXX ~1.XXX など) を使用しないでください。 2 つのファイルに同等の短いファイル名がある場合、このメソッドは失敗し、例外が発生したり、望ましくない動作が発生したりする可能性があります
こちらもご覧ください
適用対象
CopyTo(String, Boolean)
- ソース:
- 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 がスローされます。
例外
2.1 より前のバージョンの.NET Frameworkと .NET Core: destFileName
が空であるか、空白のみを含んでいるか、無効な文字が含まれています。
エラーが発生したか、リンク先ファイルが既に存在し、overwrite
が false
です。
呼び出し元に、必要なアクセス許可がありません。
destFileName
が null
です。
destFileName
で指定されたディレクトリが存在しません。
ディレクトリ パスが渡されるか、ファイルが別のドライブに移動されています。
指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。
destFileName
の文字列の途中にコロン (:) が含まれています。
例
次の例では、 メソッドの両方のオーバーロードを CopyTo
示します。
using namespace System;
using namespace System::IO;
int main()
{
String^ path = "c:\\MyTest.txt";
String^ path2 = "c:\\MyTest.txttemp";
FileInfo^ fi1 = gcnew FileInfo( path );
FileInfo^ fi2 = gcnew FileInfo( path2 );
try
{
// Create the file and clean up handles.
FileStream^ fs = fi1->Create();
if ( fs )
delete (IDisposable^)fs;
//Ensure that the target does not exist.
fi2->Delete();
//Copy the file.
fi1->CopyTo( path2 );
Console::WriteLine( "{0} was copied to {1}.", path, path2 );
//Try to copy it again, which should succeed.
fi1->CopyTo( path2, true );
Console::WriteLine( "The second Copy operation succeeded, which is expected." );
}
catch ( Exception^ )
{
Console::WriteLine( "Double copying was not allowed, which is not expected." );
}
}
//This code produces output similar to the following;
//results may vary based on the computer/file structure/etc.:
//
//The second Copy operation succeeded, which is expected.
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 namespace System;
using namespace System::IO;
int 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 = gcnew 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 = gcnew 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...
//This is the information in the second file:
//
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) ファイルが上書きされないようにするには、 メソッドを使用します。
注意事項
可能な限り、このメソッドで短いファイル名 (XXXXXX ~1.XXX など) を使用しないでください。 2 つのファイルに同等の短いファイル名がある場合、このメソッドは失敗し、例外が発生したり、望ましくない動作が発生したりする可能性があります
こちらもご覧ください
適用対象
.NET