C#でファイルを開く・読み書きする基本!Fileクラスの使い方
生徒
「先生、C#でパソコンのファイルを開いたり、読み書きしたりするにはどうすればいいんですか?」
先生
「とても良い質問ですね。C#ではFileクラスを使えば、簡単にファイルを読み書きできますよ。」
生徒
「Fileクラスって何ですか?難しそうに聞こえます…。」
先生
「大丈夫です!Fileクラスというのは、C#が用意してくれている“ファイル操作の便利道具”みたいなものなんです。では、実際に使い方を見てみましょう!」
1. Fileクラスとは?
Fileクラスは、C#のSystem.IO(システム・アイオー)という名前空間の中にあるクラスです。「IO」は「Input/Output(インプット・アウトプット)」の略で、データの読み込みや書き込みを意味します。
このクラスを使うと、テキストファイルを開いたり、内容を読み取ったり、新しいファイルを作成したりすることができます。つまり、C#で「ファイル操作をしたい」ときに最初に覚えるべき重要なクラスなんです。
2. ファイルを読み込む(Read)方法
まずは、C#で「ファイルを読む」方法を見ていきましょう。ファイルの中身を読むには、File.ReadAllText()メソッドを使います。このメソッドは、指定したファイルの内容をすべて文字列として取得します。
using System;
using System.IO;
class Program
{
static void Main()
{
string path = "sample.txt"; // 読み込みたいファイルのパス
string text = File.ReadAllText(path);
Console.WriteLine("ファイルの内容を表示します:");
Console.WriteLine(text);
}
}
このコードでは、同じフォルダ内にある「sample.txt」というファイルを読み込み、コンソール画面に中身を出力しています。
もしファイルが存在しない場合はエラーになるので、最初にファイルを作成しておくか、存在チェックを行うと安全です。
3. ファイルに書き込む(Write)方法
次に、ファイルに文字を書き込む方法を紹介します。ファイルに書き込むには、File.WriteAllText()メソッドを使います。このメソッドは、指定したファイルに文字列を書き込みます。もしファイルが存在しなければ自動的に作成してくれます。
using System;
using System.IO;
class Program
{
static void Main()
{
string path = "output.txt"; // 書き込み先のファイル
string content = "こんにちは!C#でファイルに書き込んでいます。";
File.WriteAllText(path, content);
Console.WriteLine("ファイルに書き込みが完了しました。");
}
}
実行すると、プログラムと同じフォルダに「output.txt」というファイルが作られ、中に文字が書き込まれます。
こんにちは!C#でファイルに書き込んでいます。
このように、Fileクラスを使うだけで簡単にテキストファイルを作成・編集できます。
4. ファイルが存在するか確認する方法
プログラムでファイルを開く前に、「本当にそのファイルがあるか?」を確認することが大切です。存在しないファイルを開こうとするとエラーになるためです。File.Exists()メソッドを使えば、ファイルの存在を確認できます。
using System;
using System.IO;
class Program
{
static void Main()
{
string path = "data.txt";
if (File.Exists(path))
{
Console.WriteLine("ファイルが存在します。");
}
else
{
Console.WriteLine("ファイルが見つかりません。");
}
}
}
このように条件分岐を使ってファイルの有無を確認してから読み込みや書き込みを行えば、安全なプログラムになります。
5. ファイルに追記する(Append)方法
既存のファイルに新しい内容を追加したいときは、File.AppendAllText()を使います。これは、「既存の内容を消さずに後ろに追加する」メソッドです。
using System;
using System.IO;
class Program
{
static void Main()
{
string path = "output.txt";
string newLine = "\nこの行はあとから追加されました。";
File.AppendAllText(path, newLine);
Console.WriteLine("ファイルに追記しました。");
}
}
実行すると、すでにある「output.txt」の最後に新しい文章が追加されます。
こんにちは!C#でファイルに書き込んでいます。
この行はあとから追加されました。
6. ファイルの削除やコピーもできる!
Fileクラスを使えば、ファイルの削除やコピーも簡単に行えます。たとえば、不要になったファイルを削除するにはFile.Delete()、コピーするにはFile.Copy()を使います。
File.Delete("old.txt"); // ファイルを削除
File.Copy("output.txt", "backup.txt"); // ファイルをコピー
このようにFileクラスを使うと、Windowsのエクスプローラーで行う操作をプログラムから自動で実行できるようになります。
7. ファイル操作の注意点
ファイルを扱うときには、いくつかの注意点があります。
- ファイルが他のアプリで開かれていると操作できない場合があります。
- 書き込み操作は上書きされるので、必要に応じてバックアップを取りましょう。
- ファイルの場所(パス)を指定するときは、
@"C:\example\file.txt"のように書くと便利です(「@」はエスケープシーケンスを無効にします)。
こうしたポイントを押さえておけば、C#でのファイル操作を安全に行うことができます。
8. ポイントを理解
C#のFileクラスを使えば、ファイルを開く、読む、書く、追記する、削除するなど、基本的なファイル操作を数行のコードで簡単に実現できます。これを理解しておくと、日記アプリやログ保存ツールなど、身近なプログラムも作れるようになります。
まとめ
C#のFileクラスを使ったファイル操作は、プログラムの基礎でありながら応用範囲の広いとても重要な技術です。今回の記事で学んだ「読み込み」「書き込み」「追記」「削除」「存在確認」「コピー」といった操作は、日常的に使われるだけでなく、ログ管理、設定ファイル操作、データバックアップ処理、文章生成ツールなど、実際のアプリケーションづくりでも非常に役立ちます。
Fileクラスはシンプルで使いやすい反面、その特性を理解しながら適切に扱うことで、より安全で安定したプログラムを作ることができます。たとえば、File.Exists()で存在チェックをしておけば誤ってエラーを起こすことを防げますし、File.AppendAllText()を使えば、既存データを壊さずに新しい情報だけ追記できます。
また、文字コードやファイルパスの扱い方、ファイルを開くアプリケーション側との競合にも注意が必要で、実際の開発では想像以上に細かなポイントがプログラムの安定性につながります。こうした基本操作を繰り返し練習することで、C#における入出力処理が自然と身につき、より複雑なファイル処理もスムーズに扱えるようになります。ここからは、学んだ内容をより深めるために、すべての要素を取り入れた応用的なサンプルコードを用意しました。
Fileクラスの操作をまとめて体験できるサンプルプログラム
using System;
using System.IO;
class Program
{
static void Main()
{
string path = "sample-log.txt";
// ① 存在確認
if (!File.Exists(path))
{
File.WriteAllText(path, "ログファイルを作成しました。\n");
}
// ② 追記
File.AppendAllText(path, "現在時刻:" + DateTime.Now + "\n");
// ③ 読み込み
string content = File.ReadAllText(path);
// ④ 別ファイルへコピー
string backupPath = "sample-log-backup.txt";
File.Copy(path, backupPath, overwrite: true);
// ⑤ 表示
Console.WriteLine("ログファイルの内容:");
Console.WriteLine(content);
// ⑥ 不要なら削除
// File.Delete(path);
}
}
このサンプルでは、ファイルの存在確認から作成、追記、読み込み、コピーといった一連の動作がまとまっており、Fileクラスの基本的な使い方をひと通り体験できる形になっています。特に、実行するたびに追記される「現在時刻」ログは、実務でもよく利用される処理であり、状況の記録やデバッグ情報の蓄積にも応用できます。
Fileクラスはとても強力ですが、ファイルが他のアプリケーションで使用中だった場合には書き込みに失敗することがあるなど、特有の注意点もあります。そのため、try-catchで例外処理を行ったり、上書きが必要な場合にはCopyのoverwriteを設定したりといった工夫も今後のステップとして重要になっていきます。
こうした基礎知識をしっかり押さえておくことで、「ファイルが扱える」というだけでC#で作れるアプリケーションの幅がぐんと広がり、より実践的な開発へ挑戦できるようになります。
生徒
「Fileクラスって名前だけ聞くと難しいと思っていましたけど、実際に使ってみると少しのコードでいろんな操作ができるんですね!」
先生
「そうなんです。ファイルの読み書きはプログラムの基本ですが、便利なメソッドが揃っているので、楽しみながら覚えられますね。」
生徒
「存在チェックや追記、削除なんかも一通り使えるようになったので、自分でも日記アプリとか作れそうです!」
先生
「ぜひ挑戦してください。Fileクラスを使いこなせるようになると、アプリケーションの幅が一気に広がりますよ。」
生徒
「今回学んだ内容をさらに応用して、フォルダ操作やログ収集なんかもできるようになりたいです!」
先生
「その意欲が大切ですね。FileだけでなくDirectoryクラスなども覚えていくと、より高度な管理ができます。少しずつ進めていきましょう。」