C#でファイルのコピー・移動・リネームを行う方法を徹底解説!初心者でも理解できる基本操作
生徒
「先生、C#でファイルをコピーしたり、移動したり、名前を変えたりしたいんですけど、どうやるんですか?」
先生
「いい質問ですね。C#では、Fileクラスを使えば、簡単にファイルをコピー・移動・リネームすることができますよ。」
生徒
「えっ?そんなに簡単にできるんですか?」
先生
「はい。ファイル操作に慣れると、パソコンのファイル管理も理解しやすくなります。では、具体的に見ていきましょう!」
1. C#でファイルをコピーする方法
C#でファイルをコピーするには、System.IO名前空間の中にあるFile.Copy()メソッドを使います。このメソッドを使うことで、元のファイルを残したまま、別の場所に同じ内容のファイルを作成することができます。
コピーとは、「元のファイルをそのまま複製する」ことです。たとえば、デスクトップにあるsample.txtをバックアップ用フォルダにコピーする、という操作が簡単にできます。
using System;
using System.IO;
class Program
{
static void Main()
{
string sourcePath = "C:\\temp\\sample.txt"; // 元のファイルのパス
string destinationPath = "C:\\backup\\sample.txt"; // コピー先のパス
File.Copy(sourcePath, destinationPath, true);
Console.WriteLine("ファイルをコピーしました。");
}
}
この例では、File.Copy()の3つ目の引数trueは「上書きしてもよい」という意味です。もしコピー先に同名ファイルがあっても、上書きされます。
ファイルをコピーしました。
2. C#でファイルを移動する方法
次に、ファイルを「移動」する方法を見てみましょう。ファイルの移動は、File.Move()メソッドを使います。移動とは、「元の場所から別の場所にファイルを動かす」ことです。コピーとは違い、元の場所にはファイルが残りません。
例えば、作業フォルダから整理済みフォルダへファイルを移すときなどに使えます。
using System;
using System.IO;
class Program
{
static void Main()
{
string sourcePath = "C:\\temp\\report.txt";
string destinationPath = "C:\\archive\\report.txt";
File.Move(sourcePath, destinationPath);
Console.WriteLine("ファイルを移動しました。");
}
}
ファイルを移動しました。
もし移動先に同じ名前のファイルがあると、エラーになります。上書きする機能はFile.Move()にはありません。その場合は、先にFile.Delete()で削除してから移動するなどの工夫が必要です。
3. C#でファイル名を変更(リネーム)する方法
実は「リネーム(名前変更)」も、移動と同じFile.Move()メソッドで行えます。フォルダの場所はそのままで、ファイル名だけを変えるイメージです。
たとえば、data.txtというファイルをdata_2025.txtという名前に変更したいときは、次のように書きます。
using System;
using System.IO;
class Program
{
static void Main()
{
string oldName = "C:\\temp\\data.txt";
string newName = "C:\\temp\\data_2025.txt";
File.Move(oldName, newName);
Console.WriteLine("ファイル名を変更しました。");
}
}
ファイル名を変更しました。
このように、ファイルを別フォルダに移動する場合も、同じフォルダ内で名前を変更する場合も、File.Move()を使えばOKです。
4. ファイルが存在するか確認してから操作する
コピーや移動を行う前に、ファイルが本当に存在するかを確認しておくのが安全です。存在しないファイルを操作しようとすると、エラーが出てプログラムが止まってしまいます。
File.Exists()メソッドを使えば、指定したファイルが存在するか簡単にチェックできます。
using System;
using System.IO;
class Program
{
static void Main()
{
string sourcePath = "C:\\temp\\info.txt";
string destinationPath = "C:\\backup\\info.txt";
if (File.Exists(sourcePath))
{
File.Copy(sourcePath, destinationPath, true);
Console.WriteLine("ファイルをコピーしました。");
}
else
{
Console.WriteLine("指定したファイルが見つかりません。");
}
}
}
指定したファイルが見つかりません。
このようにif文で確認しておくことで、安心してファイル操作を行うことができます。これは実務でも非常によく使われる基本テクニックです。
5. 実際の開発でよくある使い方
ファイルのコピー・移動・リネームは、業務アプリケーションやバックアップツールなどで非常によく使われます。例えば、「毎日データをコピーしてバックアップを取る」「古いファイルを日付付きで保存する」といった処理は、この基本操作を応用することで簡単に実現できます。
また、フォルダ内のファイルを一括で移動したり、ファイル名に日付や時刻を自動でつけることも可能です。ファイル操作の基礎をしっかり理解しておくと、こうした応用もスムーズに行えるようになります。
これらの操作に慣れてくると、C#で自分だけのファイル整理アプリや自動バックアップツールを作ることも夢ではありません。