案件獲得サイト
未経験歓迎転職(手取り20万以下の人は絶対転職して!!)
C#でプログラミングをしていると、ファイルのコピーが必要になる場面が多々あります。バックアップの作成、ファイルの複製、異なるディレクトリへのファイル移動など、様々な用途でファイルコピーは使われます。この記事では、C#でファイルをコピーするCopyメソッドの使い方を、上書き保存のオプションも含めて初心者の方にも分かりやすく解説します。
File.Copyメソッドの基本
C#でファイルをコピーするには、System.IO.File
クラスのCopy
メソッドを使用します。基本的な使い方は次のとおりです:
using System;
using System.IO;
class Program
{
static void Main()
{
string sourceFile = @"C:\source\example.txt";
string destinationFile = @"C:\destination\example_copy.txt";
try
{
File.Copy(sourceFile, destinationFile);
Console.WriteLine("ファイルがコピーされました。");
}
catch (IOException e)
{
Console.WriteLine($"エラーが発生しました: {e.Message}");
}
}
}
このコードは、sourceFile
で指定されたファイルをdestinationFile
で指定された場所にコピーします。
上書き保存の方法
デフォルトでは、コピー先に同名のファイルが存在する場合、File.Copy
メソッドは例外をスローします。上書きを許可するには、第三引数にtrue
を指定します:
try
{
File.Copy(sourceFile, destinationFile, true);
Console.WriteLine("ファイルがコピーされました(既存のファイルは上書きされました)。");
}
catch (IOException e)
{
Console.WriteLine($"エラーが発生しました: {e.Message}");
}
この方法で、既存のファイルを上書きしてコピーすることができます。
ファイルの存在確認
コピーを実行する前に、ソースファイルの存在を確認することは良い習慣です:
if (File.Exists(sourceFile))
{
try
{
File.Copy(sourceFile, destinationFile, true);
Console.WriteLine("ファイルがコピーされました。");
}
catch (IOException e)
{
Console.WriteLine($"エラーが発生しました: {e.Message}");
}
}
else
{
Console.WriteLine("ソースファイルが見つかりません。");
}
この方法で、ソースファイルが存在しない場合のエラーを事前に防ぐことができます。
大きなファイルのコピー
File.Copy
メソッドは小さなファイルには適していますが、大きなファイルの場合はメモリ使用量が問題になる可能性があります。大きなファイルをコピーする場合は、FileStream
を使用する方法を検討してください:
using (FileStream sourceStream = new FileStream(sourceFile, FileMode.Open))
{
using (FileStream destStream = new FileStream(destinationFile, FileMode.Create))
{
sourceStream.CopyTo(destStream);
}
}
Console.WriteLine("大きなファイルがコピーされました。");
この方法では、ファイルを小さなチャンクに分けて読み書きするため、メモリ使用量を抑えることができます。
まとめ
C#のFile.Copy
メソッドを使用したファイルコピーについて学びました。主なポイントは以下の通りです:
File.Copy
メソッドで簡単にファイルをコピーできる- 上書き保存するには第三引数に
true
を指定する - ファイルの存在確認を行うことで、エラーを事前に防げる
- 大きなファイルの場合は
FileStream
の使用を検討する
これらの基本を押さえておけば、多くのファイルコピー操作に対応できるでしょう。初心者の方は、まずは簡単なファイルコピーから始めて、徐々に複雑な操作に挑戦してみてください。ファイル操作はC#プログラミングの重要なスキルの一つです。実践を通じて、より効率的なコードを書く力を身につけていきましょう。
コメント