トップページ > 記事閲覧
Android版:セーブができない
名前:BayLeaf 日時: 2017/05/03 02:12

お世話になっております。 セーブデータについてです。 Windows版では正常にセーブできていてAndroid版のみでセーブできない状況が発生しています。 コードの書きミスをしているのか他の原因があるのかどうか分からないのでご教授いただければと思っています。 以下に該当関数を示しておきます。 // セーブ・ロードをする関数(Color) void MyColor_RW(int Mode){ FILE *fp; char FilePath[256]; // GetInternalDataPath でデータセーブ用のフォルダーパスを取得 DxLib::GetInternalDataPath(FilePath, sizeof(FilePath)); // 『スラッシュ文字 + セーブファイルパス』を文字列の後ろに付ける strcat(FilePath, "/SaveData/Other/MyColor.bin"); // ファイルを書き込み新規作成( "wb" )で開く( 読み込みの場合は "rb" ) if (Mode == 0) { fp = fopen(FilePath, "rb"); } if (Mode == 1) { fp = fopen(FilePath, "wb"); } // ファイルが開けたかチェック if (Mode == 0) { if (fp != NULL) { // ファイルが開けた for (i = 0; i<3; i++) { fread(&MyColor[i], sizeof(MyColor[i]), i + 1, fp); } } else { for (i = 0; i<3; i++) { MyColor[i] = 0; } } } if (Mode == 1) { // セーブ if (fp != NULL) { // ファイルが開けた for (i = 0; i<3; i++) { fwrite(&MyColor[i], sizeof(MyColor[i]), i + 1, fp); } } } // ファイルを閉じる if (fp != NULL) { fclose(fp); } }
メンテ

Page: 1 |

Re: Android版:セーブができない ( No.1 )
名前:yumetodo 日時:2017/05/03 02:35

(書き出し先のディレクトリにWrite Accessの権限はあるのかな・・・?)
メンテ
Re: Android版:セーブができない ( No.2 )
名前:管理人 日時:2017/05/03 17:11

恐らくですが、GetInternalDataPath で取得できるフォルダ自体には保存できますが、 GetInternalDataPath で取得できるフォルダの中にあるフォルダには保存できないのだと思います なのでこちら // 『スラッシュ文字 + セーブファイルパス』を文字列の後ろに付ける strcat(FilePath, "/SaveData/Other/MyColor.bin"); を // 『スラッシュ文字 + セーブファイルパス』を文字列の後ろに付ける strcat(FilePath, "/MyColor.bin"); のように変更すればファイルを開けると思います
メンテ
Re: Android版:セーブができない ( No.3 )
名前:BayLeaf(解決) 日時:2017/05/03 23:22

確かに以下のようにしたらできました! strcat(FilePath, "/MyColor.bin"); 今までWindows版を長く触れていたので自動でフォルダが生成されるものとばかり思っていました。 Android版について色々と勉強する必要がありそうですね。 無事に解決できたので解決済みとします。 回答していただきありがとうございました!
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存