🐕
C#でのファイル操作入門 - 要点まとめ
はじめに
プログラミング初学者の備忘録として、C#におけるファイルシステム操作の基本をまとめました。
1. ディレクトリとパスの操作
現在のディレクトリを取得
var currentDirectory = Directory.GetCurrentDirectory();
Console.WriteLine(currentDirectory);
クロスプラットフォーム対応のパス
// OS間で互換性のあるパス区切り文字
Console.WriteLine($"stores{Path.DirectorySeparatorChar}201");
// より簡単な方法
Console.WriteLine(Path.Combine("stores", "201"));
2. ディレクトリ操作
ディレクトリの作成
// 階層的なディレクトリを一度に作成
Directory.CreateDirectory(
Path.Combine(Directory.GetCurrentDirectory(), "stores", "201", "newDir")
);
ディレクトリの存在確認
bool doesDirectoryExist = Directory.Exists(filePath);
3. ファイル操作
ファイルの作成と書き込み
// ファイルを作成して内容を書き込む
File.WriteAllText(
Path.Combine(Directory.GetCurrentDirectory(), "greeting.txt"),
"Hello World!"
);
ファイルからデータを読み取る
// ファイルの内容を文字列として読み込む
string content = File.ReadAllText(
$"stores{Path.DirectorySeparatorChar}201{Path.DirectorySeparatorChar}sales.json"
);
ファイルにデータを追加
// 既存のファイルに内容を追加
File.AppendAllText(
$"salesTotalDir{Path.DirectorySeparatorChar}totals.txt",
$"{data.Total}{Environment.NewLine}"
);
4. ファイル検索
ディレクトリ内のファイルを検索
IEnumerable<string> FindFiles(string folderName)
{
List<string> salesFiles = new List<string>();
var foundFiles = Directory.EnumerateFiles(folderName, "*", SearchOption.AllDirectories);
foreach (var file in foundFiles)
{
var extension = Path.GetExtension(file);
if (extension == ".json")
{
salesFiles.Add(file);
}
}
return salesFiles;
}
5. JSONデータの処理
Newtonsoft.Jsonの導入
# コマンドラインからパッケージをインストール
$ dotnet add package Newtonsoft.Json
// コードの先頭で名前空間をインポート
using Newtonsoft.Json;
JSONのデシリアライズ
// JSONファイルを読み込む
var salesJson = File.ReadAllText($"stores{Path.DirectorySeparatorChar}201{Path.DirectorySeparatorChar}sales.json");
// JSONをC#オブジェクトに変換
var salesData = JsonConvert.DeserializeObject<SalesTotal>(salesJson);
// データモデルクラス
class SalesTotal
{
public double Total { get; set; }
}
まとめ
C#のファイルシステム操作の基本を紹介しました。これらを組み合わせることで、効率的なデータ処理アプリケーションの開発が可能になります。
より詳細な説明や実践例については、私のブログ(スキルおたく)をご覧ください。
Discussion