FileInfo.CopyTo Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Zkopíruje existující soubor do nového souboru.
Přetížení
CopyTo(String) |
Zkopíruje existující soubor do nového souboru a zakáže přepsání existujícího souboru. |
CopyTo(String, Boolean) |
Zkopíruje existující soubor do nového souboru a umožní přepsání existujícího souboru. |
CopyTo(String)
- Zdroj:
- FileInfo.cs
- Zdroj:
- FileInfo.cs
- Zdroj:
- FileInfo.cs
Zkopíruje existující soubor do nového souboru a zakáže přepsání existujícího souboru.
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
Parametry
- destFileName
- String
Název nového souboru, do který chcete zkopírovat.
Návraty
Nový soubor s plně kvalifikovanou cestou.
Výjimky
Verze .NET Framework a .NET Core starší než 2.1: destFileName
jsou prázdné, obsahují pouze prázdné znaky nebo obsahují neplatné znaky.
Dojde k chybě nebo cílový soubor již existuje.
Volající nemá požadované oprávnění.
destFileName
je null
.
Předá se cesta k adresáři nebo se soubor přesouvá na jinou jednotku.
Adresář zadaný v destFileName
neexistuje.
Zadaná cesta, název souboru nebo obojí překračují maximální délku definovanou systémem.
destFileName
obsahuje dvojtečku (:) v řetězci, ale neurčuje svazek.
Příklady
Následující příklad ukazuje obě přetížení CopyTo
metody.
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
Následující příklad ukazuje kopírování jednoho souboru do jiného souboru, vyvolá výjimku, pokud cílový soubor již existuje.
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...
Poznámky
CopyTo(String, Boolean) Pomocí metody povolte přepsání existujícího souboru.
Upozornění
Pokud je to možné, nepoužívejte u této metody krátké názvy souborů (například XXXXXX~1.XXX). Pokud dva soubory mají ekvivalentní krátké názvy souborů, může tato metoda selhat a vyvolat výjimku nebo vést k nežádoucímu chování.
Viz také
- Vstupně-výstupní operace souborů a Stream
- Postupy: Čtení textu ze souboru
- Postupy: Zápis textu do souboru
- Postupy: Čtení a zápis do nově vytvořeného datového souboru
Platí pro
CopyTo(String, Boolean)
- Zdroj:
- FileInfo.cs
- Zdroj:
- FileInfo.cs
- Zdroj:
- FileInfo.cs
Zkopíruje existující soubor do nového souboru a umožní přepsání existujícího souboru.
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
Parametry
- destFileName
- String
Název nového souboru, do který chcete zkopírovat.
- overwrite
- Boolean
true
umožnit přepsání existujícího souboru; v opačném případě . false
Návraty
Nový soubor nebo přepsání existujícího souboru, pokud overwrite
je true
. Pokud soubor existuje a overwrite
je false
, vyvolá se .IOException
Výjimky
Verze .NET Framework a .NET Core starší než 2.1: destFileName
jsou prázdné, obsahují pouze prázdné znaky nebo obsahují neplatné znaky.
Dojde k chybě nebo cílový soubor již existuje a overwrite
je false
.
Volající nemá požadované oprávnění.
destFileName
je null
.
Adresář zadaný v destFileName
neexistuje.
Předá se cesta k adresáři nebo se soubor přesouvá na jinou jednotku.
Zadaná cesta, název souboru nebo obojí překračují maximální délku definovanou systémem.
destFileName
obsahuje dvojtečku (:) uprostřed řetězce.
Příklady
Následující příklad ukazuje obě přetížení CopyTo
metody.
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
Následující příklad ukazuje kopírování jednoho souboru do jiného souboru a určuje, zda se má přepsat soubor, který již existuje.
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...
'
Poznámky
Tuto metodu použijte k povolení nebo zabránění přepsání existujícího souboru. CopyTo(String) Pomocí metody můžete ve výchozím nastavení zabránit přepsání existujícího souboru.
Upozornění
Pokud je to možné, nepoužívejte u této metody krátké názvy souborů (například XXXXXX~1.XXX). Pokud dva soubory mají ekvivalentní krátké názvy souborů, může tato metoda selhat a vyvolat výjimku nebo vést k nežádoucímu chování.
Viz také
- Vstupně-výstupní operace souborů a Stream
- Postupy: Čtení textu ze souboru
- Postupy: Zápis textu do souboru
- Postupy: Čtení a zápis do nově vytvořeného datového souboru