はじめに
C#は強力で柔軟なプログラミング言語であり、さまざまなファイル操作を簡単に行うことができます。ファイルの作成、削除、書き込み、読み込みなどの基本操作は、アプリケーション開発において非常に重要です。本記事では、C#での基本的なファイル操作について詳しく説明します。初心者でも理解しやすいように、具体的なコード例を交えて解説しますので、ぜひ参考にしてください。
ファイルの作成
ファイルを作成する方法は簡単で、System.IO名前空間にあるFileクラスを使用します。以下に、テキストファイルを作成する基本的なコード例を示します。
ファイルの作成方法
using System;
using System.IO;
class Program
{
static void Main()
{
string path = @"C:\example\myfile.txt";
if (!File.Exists(path))
{
File.Create(path).Close();
Console.WriteLine("ファイルが作成されました。");
}
else
{
Console.WriteLine("ファイルは既に存在します。");
}
}
}
このコードは、指定されたパスにファイルが存在しない場合、新しいファイルを作成します。File.Createメソッドは、作成したファイルを表すFileStreamオブジェクトを返します。ファイルが使用中でない場合は、Closeメソッドを呼び出して閉じます。
ファイルの存在確認
ファイルの存在を確認するために、File.Existsメソッドを使用します。これは、指定したパスにファイルが存在するかどうかをブール値で返します。ファイルの存在を確認することは、ファイル操作の安全性を確保するために重要です。
ファイルへの書き込み
ファイルにデータを書き込む方法も非常に簡単です。StreamWriterクラスを使用して、テキストデータをファイルに書き込むことができます。
テキストデータの書き込み
using System;
using System.IO;
class Program
{
static void Main()
{
string path = @"C:\example\myfile.txt";
using (StreamWriter writer = new StreamWriter(path, append: true))
{
writer.WriteLine("これはテストメッセージです。");
writer.WriteLine("複数行のデータを書き込むことができます。");
}
Console.WriteLine("データが書き込まれました。");
}
}
このコードでは、StreamWriterを使用して指定されたファイルにテキストデータを書き込みます。appendパラメーターをtrueに設定すると、既存の内容にデータを追加します。falseに設定すると、既存のデータを上書きします。
バイナリデータの書き込み
バイナリデータを書き込むには、BinaryWriterクラスを使用します。以下は、バイナリデータを書き込む例です。
using System;
using System.IO;
class Program
{
static void Main()
{
string path = @"C:\example\mybinaryfile.dat";
using (FileStream fs = new FileStream(path, FileMode.Create))
using (BinaryWriter writer = new BinaryWriter(fs))
{
writer.Write(1234); // 整数データを書き込み
writer.Write("Hello, World!"); // 文字列データを書き込み
}
Console.WriteLine("バイナリデータが書き込まれました。");
}
}
ファイルの読み込み
ファイルからデータを読み込むには、StreamReaderやBinaryReaderクラスを使用します。以下に、テキストファイルとバイナリファイルの読み込み方法を示します。
テキストデータの読み込み
using System;
using System.IO;
class Program
{
static void Main()
{
string path = @"C:\example\myfile.txt";
using (StreamReader reader = new StreamReader(path))
{
string content = reader.ReadToEnd();
Console.WriteLine("ファイルの内容:");
Console.WriteLine(content);
}
}
}
このコードでは、StreamReaderを使用してファイルの内容を文字列として読み込みます。ReadToEndメソッドは、ファイル全体を一度に読み込むのに便利です。
バイナリデータの読み込み
using System;
using System.IO;
class Program
{
static void Main()
{
string path = @"C:\example\mybinaryfile.dat";
using (FileStream fs = new FileStream(path, FileMode.Open))
using (BinaryReader reader = new BinaryReader(fs))
{
int intValue = reader.ReadInt32(); // 整数データを読み込み
string stringValue = reader.ReadString(); // 文字列データを読み込み
Console.WriteLine("整数値: " + intValue);
Console.WriteLine("文字列: " + stringValue);
}
}
}
ファイルの削除
不要になったファイルを削除するには、File.Deleteメソッドを使用します。このメソッドは、指定されたパスのファイルを削除します。
ファイルの削除方法
using System;
using System.IO;
class Program
{
static void Main()
{
string path = @"C:\example\myfile.txt";
if (File.Exists(path))
{
File.Delete(path);
Console.WriteLine("ファイルが削除されました。");
}
else
{
Console.WriteLine("ファイルが存在しません。");
}
}
}
このコードでは、ファイルの存在を確認し、存在する場合に削除します。ファイルが存在しない場合、削除操作は実行されません。
ファイル情報の取得
ファイルに関する情報を取得するには、FileInfoクラスを使用します。このクラスは、ファイルのサイズ、作成日時、最終アクセス日時などの詳細情報を提供します。
ファイル情報の取得方法
using System;
using System.IO;
class Program
{
static void Main()
{
string path = @"C:\example\myfile.txt";
FileInfo fileInfo = new FileInfo(path);
if (fileInfo.Exists)
{
Console.WriteLine("ファイル名: " + fileInfo.Name);
Console.WriteLine("ファイルサイズ: " + fileInfo.Length + " バイト");
Console.WriteLine("作成日時: " + fileInfo.CreationTime);
Console.WriteLine("最終アクセス日時: " + fileInfo.LastAccessTime);
}
else
{
Console.WriteLine("ファイルが存在しません。");
}
}
}
このコードでは、FileInfoオブジェクトを使用してファイルの詳細情報を取得します。ファイルが存在する場合、名前、サイズ、作成日時、最終アクセス日時などの情報を表示します。
ファイルの移動とコピー
ファイルを移動またはコピーするには、File.MoveおよびFile.Copyメソッドを使用します。
ファイルの移動
using System;
using System.IO;
class Program
{
static void Main()
{
string sourcePath = @"C:\example\myfile.txt";
string destinationPath = @"C:\example\newfolder\myfile.txt";
if (File.Exists(sourcePath))
{
File.Move(sourcePath, destinationPath);
Console.WriteLine("ファイルが移動されました。");
}
else
{
Console.WriteLine("移動元のファイルが存在しません。");
}
}
}
ファイルのコピー
using System;
using System.IO;
class Program
{
static void Main()
{
string sourcePath = @"C:\example\myfile.txt";
string destinationPath = @"C:\example\myfile_copy.txt";
if (File.Exists(sourcePath))
{
File.Copy(sourcePath, destinationPath, overwrite: true);
Console.WriteLine("ファイルがコピーされました。");
}
else
{
Console.WriteLine("コピー元のファイルが存在しません。");
}
}
}
まとめ
本記事では、C#におけるファイル操作の基本について解説しました。ファイルの作成、削除、書き込み、読み込み、情報の取得、移動、コピーなど、さまざまな操作方法を具体的なコード例を交えて説明しました。これらの基本操作をマスターすることで、より効率的にC#でのファイル操作を行うことができるでしょう。ファイル操作は多くのアプリケーションで必要となる基本的なスキルですので、ぜひ今回の記事を参考に実践してみてください。

