ファイルをコピーをするには File.Copy メソッドを使用します。
ファイルをコピーする方法
File.Copy メソッドの引数に、コピーしたいファイル名 と コピー先のファイル名 を指定します。ファイルの 上書き を防止したいとき
using System.IO;
File.Copy("コピー元のファイル名", "コピー後のファイル名");
- コピー先に指定したファイルが存在するとき、例外「IOException」が発生します。
using System.IO;
File.Copy("コピー元のファイル名", "コピー後のファイル名", true);
ファイル名は変更せず、他の ディレクトリ(フォルダー) にコピーするとき
コピー先に ディレクトリ(フォルダー) のみの指定はできません。必ずファイル名も指定します。"D:\test1\test.txt" を "D:\test2\test.txt" にコピーしたいとき、 コピー先のファイル名は "D:\test2\test.txt" とします。 "D:\test2\" と指定すると例外が発生し、 "D:\test2" と指定すると "test2" という名前のファイル名でコピーされます。
ファイルがあるか、確認する
ファイルがあるか確認するには、File.Exists メソッドを使用します。 詳細は次の記事を参照してください。コピー先のフォルダ(ディレクトリ)があるか、確認する
フォルダがあるか確認するには、Directory.Exists メソッドを使用します。 詳細は次の記事を参照してください。ファイルコピーのサンプルプログラム
- 1行目: using System は、Console.WriteLine メソッドで結果を出力するのに使用しています。
- 6行目: ファイル "D:\\test\\test.txt" を、 "D:\\test\\test.copy.txt" の名前でコピーしています。
using System;
using System.IO;
try
{
File.Copy("D:\\test\\test.txt", "D:\\test\\test.copy.txt");
Console.WriteLine($"コピーが完了しました。");
}
catch (UnauthorizedAccessException ex)
{
Console.WriteLine($"必要なアクセス許可がありません。({ex.Message})");
}
catch (ArgumentNullException ex)
{
Console.WriteLine($"ファイル名がnullです。({ex.Message})");
}
catch (ArgumentException ex)
{
Console.WriteLine($"ファイル名の形式が正しくありません。({ex.Message})");
}
catch (PathTooLongException ex)
{
Console.WriteLine($"ファイル名が長すぎます。({ex.Message})");
}
catch (DirectoryNotFoundException ex)
{
Console.WriteLine($"パスが無効です。({ex.Message})");
}
catch (FileNotFoundException ex)
{
Console.WriteLine($"コピー対象のファイルがありません。({ex.Message})");
}
catch (IOException ex)
{
Console.WriteLine($"既にコピー先のファイルが存在するか、I/O エラーが発生しました。({ex.Message})");
}
catch (NotSupportedException ex)
{
Console.WriteLine($"ファイル名の形式が正しくありません。({ex.Message})");
}
catch (Exception ex)
{
Console.WriteLine($"予期せぬエラーが発生しました。({ex.Message})");
}
サンプルコードの実行後
更新日時・属性(読み取り専用・隠しファイル) は コピーされていますが、作成日時 や アクセス日時 は異なっています。
サンプルコードのダウンロード
サンプルコードの実行には Microsoft Visual Studio 2019 以上のバージョンが必要です。 2019以外のバージョンではプロジェクトを開いた際にファイルの変換が必要な場合があります。その場合は変換後に実行してください。検証環境
- .NET 5.0
- Microsoft Visual Studio Professional 2019 Version 16.9.4
- Microsoft Windows 10 Pro Version 20H2 OS Build 19042.964 Experience: Windows Feature Experience Pack 120.2212.2020.0