相対パスを使って、.csvファイルを読み込む。【C#】

目次

経緯

いつも絶対パスを使っていたが、他の人がコードを使うときに、絶対パスではエラーが起こりやすいので、今回、相対パスを使って、.csvファイルのデータを読み込んでみます。

手順

まず、プログラムのコードを書きます。フォームで「btnReadcsv」というボタンを作成して、ボタンを押すと、「csvファイルが読まれる」という想定です。

private void btnReadcsv_Click(object sender, EventArgs e)
{
    // プロジェクトのディレクトリを取得
    string projectDir = Directory.GetParent(Environment.CurrentDirectory).Parent.FullName;
    
    // データのディレクトリへのパスを作成
    string dataDir = Path.Combine(projectDir, "data");
    
    var files = Directory.GetFiles(dataDir);

    foreach (var file in files)
    {
        var lines = File.ReadAllLines(file);

        foreach (var line in lines)
        {
            var values = line.Split(',');
            // ここで各行の値に対する処理を行う
        }
    }
}

こんな感じです。

Directory.GetParentメソッドを2回呼び出すことでうまくいきました。

このコードでは、アプリケーションの実行ディレクトリから2つ上のディレクトリ(プロジェクトのルートディレクトリ)を取得し、そこから”data”ディレクトリへのパスを組み立てます。

何かの参考になれば、幸いです。

ここまで読んでいただきありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次