このままでは、android実機にビルドしても保存・読込みは行われないので、
修正していきたいと思います。
まずはGoogle先生にお伺いしてみます。
返ってきた答えが
Application.persistentDataPath
アプリケーションの永続的なデータ(キャッシュなど)を保存する場所
だそうです。
とりあえず、組み込んでみたいと思います。
private string FilePath = @"/program.csv"; //CSVファイルのpath
if (System.IO.File.Exists(Application.persistentDataPath+ FilePath))
FilePathのファイル名の前に”/”を追加
ファイル検索のSystem.IO.File.Existsのパスに
Application.persistentDataPath+を追加しました。
続いて、StreamWriterとStreamReaderの修正をします。
StreamWriter sw = new StreamWriter(Application.persistentDataPath+
FilePath, false, Encoding.GetEncoding("Shift_JIS"));
StreamReader sr = new StreamReader(Application.persistentDataPath+
FilePath, Encoding.GetEncoding("Shift_JIS"));
少しApplication.persistentDataPathについて触れておくと
機種依存のファイルパスだそうで、機種によってroot先が変わるんだとか
基本的には、ビルドした時にパッケージネームのフォルダーが作成されるので
その中にパスが通るようです。
Unityの基本設定では、保存先がInternalに設定されており、
Externalを選んだ時にいろいろと複雑になるようです。
また、機種変更でデータ引継ぎなどの際は要注意なんだとか…
今回は、あくまで1機種に繰り返しの保存・読込みなので、
複雑な事は、あまり考えず実装してみます。 (;^o^) \(ToT )あんたほんとにそれでいいの
これでandroidの保存フォルダにパスが通ったので、
ビルドとしたい所なんですが…
実はこのままでは、保存が出来ません。(T-T) グスッ
androidは文字のエンコードにUTF-8を使用しているので、
StreamWriterとStreamReaderの文字コードを書き直す必要があります。
なので、エンコードをUTF-8に変更します。
StreamWriter sw = new StreamWriter(Application.persistentDataPath+
FilePath, false, Encoding.GetEncoding("utf-8"));
StreamReader sr = new StreamReader(Application.persistentDataPath+
FilePath, Encoding.GetEncoding("utf-8"));
これで実機にビルドできます。(V)o\o(V)ふぉふぉふぉ
PlayerSettingを開いて、諸所の設定をします。


Unityでは定番の作業です。
androidにインストールする際、パッケージネームのフォルダが作成されます。
その中にお目当てのデータが保存されるので、
覚えておいて下さい。
ビルド~インストールまで終了すれば、アプリを起動します。
適当にカレンダーの入力をして保存します。

これでCSVファイルが保存されたので、
ストレージの中を見てみます。
ここからはGalaxy S8の物になります。
使用する機種によっては、階層が変わるかもしれないので注意です。

内部ストレージ/Android/dataまで開くと、
インストール済みのパッケージがズラッと並んでいるかと思います。
ここから自分で作ったパッケージネームを探します。

今回はこれです。
最初探すのに苦労しますが、アルファベット順に並んでいるので
慣れると直ぐに見つかるようになると思います。
このフォルダを開くと

二つのフォルダがあるので、filesを開きます。

無事にCSVデータが保存されています。
このままアプリを起動すると無事にテキストが反映されたので、
CSVデータの読込みも無事に行けてます。
ちなみにApplication.persistentDataPathは、パッケージフォルダまでのrootで、
Application.persistentDataPath+@ファイル名だとパッケージフォルダ直下になります。
今回はfilesフォルダに保管したかったので、
Application.persistentDataPath+@/program.csvとしました。
ファイル名の前に/を挟むとfilesの階層まで開いてくれます。
状況によって階層を変える事ができそうです。
今回はカレンダー上でテキストを設定して、
保存・読込みまでを作りました。
実際にアプリは完成したのですが、
結局使用しておりません。
本家のスカパーからアプリが出ており必要が無くなりました(T△T) アウアウ~
ただ、今回の事を応用して体重管理アプリを作って
嫁ともども使用しております。
次回は体重管理アプリで使ったInputFieldの記事を書いてみようかと思います。
では、今回はこのへんで( ^ 0 ^ )/~~~~see you again
この記事へのコメント