C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML
Next: This program takes a file that exists, file-a.txt, and copies it to file-new.txt. Both files contain the same string.
And: It displays the contents of both files, using Console.WriteLine and File.ReadAllText, to prove equality.
C# program that uses File.Copy
using System;
using System.IO;
class Program
{
static void Main()
{
// Copy one file to a nonexistent location
File.Copy("file-a.txt", "file-new.txt");
// Display the contents of both files
Console.WriteLine(File.ReadAllText("file-a.txt"));
Console.WriteLine(File.ReadAllText("file-new.txt"));
}
}
Output
Contents of File A.
Contents of File A.
Here: The example displays the contents of file-b.txt. Then it calls File.Copy and copies file-a.txt to file-b.txt.
Note: No exception is thrown here. The code displays the contents of the two files, which are now equal.
C# program that uses File.Copy parameters
using System;
using System.IO;
class Program
{
static void Main()
{
// Write initial contents of File B.
Console.WriteLine(File.ReadAllText("file-b.txt"));
// "File B contents."
// COPY:
// Copy one file to a location where there is a file.
File.Copy("file-a.txt", "file-b.txt", true); // overwrite = true
// Display the contents of both files
Console.WriteLine(File.ReadAllText("file-a.txt"));
Console.WriteLine(File.ReadAllText("file-b.txt"));
}
}
Output
"Contents of File A."
"Contents of File A."
Here: The program has two try-catch blocks. It uses File.Copy to copy a missing file. It demonstrates that the FileNotFoundException is thrown.
TryCatchNext: We get an IOException when we copy to a file that exists, but don't specify overwrite. To specify overwrite, use true as the third parameter.
True, FalseCaution: File IO will occasionally throw exceptions. It is one of the best uses for exception-handling.
Tip: You should wrap your File.Copy, as well as other methods such as File.ReadAllText, inside a try-catch block.
File.ReadAllTextC# program that demonstrates File.Copy exceptions
using System;
using System.IO;
class Program
{
static void Main()
{
// Copying a file that doesn't exist:
try
{
File.Copy("file-missing.txt", "file-new.txt");
}
catch (Exception ex)
{
Console.WriteLine(ex);
// System.IO.FileNotFoundException: Could not find file 'file-missing.txt'.
}
// Copying to a file without overwrite
try
{
File.Copy("file-a.txt", "file-b.txt");
}
catch (Exception ex)
{
Console.WriteLine(ex);
// System.IO.IOException: The file 'file-b.txt' already exists.
}
}
}
Also: More information on exceptions caused by File.Copy and other methods in System.IO is available.
Exception