FileInfo.CopyTo Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Kopiuje istniejący plik do nowego pliku.
Przeciążenia
| Nazwa | Opis |
|---|---|
| CopyTo(String) |
Kopiuje istniejący plik do nowego pliku, co uniemożliwi zastąpienie istniejącego pliku. |
| CopyTo(String, Boolean) |
Kopiuje istniejący plik do nowego pliku, co umożliwia zastąpienie istniejącego pliku. |
CopyTo(String)
- Źródło:
- FileInfo.cs
- Źródło:
- FileInfo.cs
- Źródło:
- FileInfo.cs
- Źródło:
- FileInfo.cs
- Źródło:
- FileInfo.cs
Kopiuje istniejący plik do nowego pliku, co uniemożliwi zastąpienie istniejącego pliku.
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
Nazwa nowego pliku do skopiowania.
Zwraca
Nowy plik z w pełni kwalifikowaną ścieżką.
Wyjątki
.NET Framework i .NET Core w wersjach starszych niż 2.1: destFileName jest pusta, zawiera tylko białe spacje lub zawiera nieprawidłowe znaki.
Występuje błąd lub plik docelowy już istnieje.
Obiekt wywołujący nie ma wymaganych uprawnień.
Parametr destFileName ma wartość null.
Ścieżka katalogu jest przekazywana lub plik jest przenoszony na inny dysk.
Katalog określony w destFileName pliku nie istnieje.
Określona ścieżka, nazwa pliku lub obie metody przekraczają maksymalną długość zdefiniowaną przez system.
destFileName zawiera dwukropek (:) w ciągu, ale nie określa woluminu.
Przykłady
W poniższym przykładzie przedstawiono oba przeciążenia CopyTo metody .
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
W poniższym przykładzie pokazano kopiowanie jednego pliku do innego pliku, zgłaszając wyjątek, jeśli plik docelowy już istnieje.
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...
Uwagi
CopyTo(String, Boolean) Użyj metody , aby zezwolić na zastępowanie istniejącego pliku.
Caution
Jeśli to możliwe, należy unikać używania krótkich nazw plików (takich jak XXXXXX~1.XXX) przy użyciu tej metody. Jeśli dwa pliki mają równoważne krótkie nazwy plików, ta metoda może zakończyć się niepowodzeniem i zgłosić wyjątek i/lub spowodować niepożądane zachowanie
Zobacz też
- Wejście/Wyjście plików i strumieni
- Instrukcje: odczytywanie tekstu z pliku
- Instrukcje: zapisywanie tekstu w pliku
- Instrukcje: odczytywanie i zapisywanie w nowo utworzonym pliku danych
Dotyczy
CopyTo(String, Boolean)
- Źródło:
- FileInfo.cs
- Źródło:
- FileInfo.cs
- Źródło:
- FileInfo.cs
- Źródło:
- FileInfo.cs
- Źródło:
- FileInfo.cs
Kopiuje istniejący plik do nowego pliku, co umożliwia zastąpienie istniejącego pliku.
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
Nazwa nowego pliku do skopiowania.
- overwrite
- Boolean
true aby zezwolić na zastąpienie istniejącego pliku; w przeciwnym razie, false.
Zwraca
Nowy plik lub zastąpienie istniejącego pliku, jeśli overwrite ma wartość true. Jeśli plik istnieje i overwrite ma falsewartość , IOException jest zgłaszany.
Wyjątki
.NET Framework i .NET Core w wersjach starszych niż 2.1: destFileName jest pusta, zawiera tylko białe spacje lub zawiera nieprawidłowe znaki.
Występuje błąd lub plik docelowy już istnieje i overwrite ma wartość false.
Obiekt wywołujący nie ma wymaganych uprawnień.
Parametr destFileName ma wartość null.
Katalog określony w destFileName pliku nie istnieje.
Ścieżka katalogu jest przekazywana lub plik jest przenoszony na inny dysk.
Określona ścieżka, nazwa pliku lub obie metody przekraczają maksymalną długość zdefiniowaną przez system.
destFileName zawiera dwukropek (:) w środku ciągu.
Przykłady
W poniższym przykładzie przedstawiono oba przeciążenia CopyTo metody .
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
W poniższym przykładzie pokazano kopiowanie jednego pliku do innego pliku, określając, czy zastąpić plik, który już istnieje.
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...
'
Uwagi
Użyj tej metody, aby umożliwić lub zapobiec zastępowaniu istniejącego pliku. CopyTo(String) Użyj metody , aby zapobiec zastępowaniu istniejącego pliku domyślnie.
Caution
Jeśli to możliwe, należy unikać używania krótkich nazw plików (takich jak XXXXXX~1.XXX) przy użyciu tej metody. Jeśli dwa pliki mają równoważne krótkie nazwy plików, ta metoda może zakończyć się niepowodzeniem i zgłosić wyjątek i/lub spowodować niepożądane zachowanie
Zobacz też
- Wejście/Wyjście plików i strumieni
- Instrukcje: odczytywanie tekstu z pliku
- Instrukcje: zapisywanie tekstu w pliku
- Instrukcje: odczytywanie i zapisywanie w nowo utworzonym pliku danych