フォルダ内のファイルを全て取得

Unity

指定したフォルダ内のCSVファイルを全て取得し、テキストの内容を文字列に代入する方法です。

    // Multilineはインスペクタの文字列を複数行で表示します
    [SerializeField, Multiline(5)] private string[] str;

    void Start()
    {
        ReadFiles();
    }

    /// <summary>
    /// 任意のフォルダ内のCSVファイル内容をすべて読み込む
    /// </summary>
    void ReadFiles()
    {
        string path = Application.dataPath + "/" + "ReadFiles";
        string[] files = Directory.GetFiles(path, "*.csv", SearchOption.AllDirectories);
        str = new string[files.Length];

        for(int i=0; i<files.Length; i++)
        {
            StreamReader sr = new StreamReader(files[i], Encoding.UTF8);
            str[i] = sr.ReadToEnd();
            sr.Close();
        }
    }
string[] files = Directory.GetFiles(path, "*.csv", SearchOption.AllDirectories);

Directory.GetFIles()の第二引数にワイルドカード(*)を指定すれば全てのファイルを取得できますが、エディターで実行するとmetaファイルまで取得してしまうので注意が必要です。

コメント

タイトルとURLをコピーしました