経緯
これまでCSVファイルを読み込む際に**絶対パス(フルパス)**を使っていましたが、
他の人が同じコードを実行する際に、環境依存でエラーが発生しやすいと感じました。
そこで今回は、相対パスでCSVファイルを読み込む方法を学習しました。
相対パスを使用すれば、環境に依存せずどのPCでも動く柔軟なコードを作ることができます。
使用環境と前提条件
- Windows Forms アプリケーション
- 読み込むCSVファイルは、プロジェクト直下の
dataフォルダ内に配置 - 読み込む対象はすべての
.csvファイル(拡張子指定も可能)
実装コード:相対パスを使ってCSVを読み込む
以下は、フォームに設置したボタン btnReadcsv をクリックしたときに、
プロジェクト内の data フォルダからCSVファイルを読み込むコード例です。
private void btnReadcsv_Click(object sender, EventArgs e)
{
// 実行ファイルの2階層上(プロジェクトのルート)を取得
string projectDir = Directory.GetParent(Environment.CurrentDirectory).Parent.FullName;
// プロジェクト直下の data フォルダを指定
string dataDir = Path.Combine(projectDir, "data");
// data フォルダ内のすべてのCSVファイルを取得
var files = Directory.GetFiles(dataDir, "*.csv");
foreach (var file in files)
{
// ファイル内のすべての行を読み込む
var lines = File.ReadAllLines(file);
foreach (var line in lines)
{
var values = line.Split(',');
// 必要な処理をここに記述(例:データ表示や加工)
}
}
}
このコードのポイント
Directory.GetParent(Environment.CurrentDirectory).Parent.FullName
→ アプリケーションの実行フォルダから2つ上の階層(=プロジェクトのルート)を取得Path.Combine()でディレクトリを結合し、環境に依存しない形式でパスを構築.csv拡張子を指定して、対象ファイルを限定
応用例
- 別フォルダ(例:
resources、input)への対応も容易 - データロギング、CSVによる初期設定読込処理などにも応用可能
- 開発時とリリース時の環境差異にも強い構造
注意点
- 相対パスでアクセスするディレクトリ(例:
data)は、プロジェクトと一緒に配布する必要があります - 実行時にフォルダが存在しない場合、エラーになります。必要に応じて
Directory.Exists()で存在チェックを加えると安全です ReadAllLines()ではすべての行を一度にメモリに読み込むため、非常に大きなファイルにはReadLines()の使用が推奨されます
まとめ
相対パスを使えば、環境依存のない柔軟なファイル読み込み処理が実現できます。
特にチーム開発や複数PCでのアプリ共有を行う場合には必須の知識です。
今後もCSVファイルを扱う機会があれば、ぜひ相対パスでの読み込みをベースに設計してみてください。
最後までお読みいただきありがとうございました。
副業から独立まで「稼げる」Webスキルを習得する(PR)
ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。
「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。
このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。
講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。
副業に特化した強み
- 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
- AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
- 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。
受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。
受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。
