以下が現在のコードです。file.mkdirs()がうまくいっていないようです
private void SaveFile(){
if(sdcardWriteReady()==true){
File file = new File(Environment.getExternalStorageDirectory().getPath()+"/test/"); //SDカードのディレクトリを取得してこのゲーム用の分追加
boolean s = file.exists(); //このをEnvironment.getExternalStorageDirectory().getPath()+"/test/save.dat"としてもだめだった
try{
if(s==false){
file.mkdirs();
}
}catch(SecurityException e){
}
s = file.exists(); //デバッグでみるとこの時点でs=falseなのでmkdirsがうまくいっていないのかも?
String AttachName = file.getAbsolutePath() + "/save.dat";
File saveFile = new File(AttachName);
try {
FileOutputStream out = new FileOutputStream(saveFile); //ここで例外が出てeraa=100000000まで飛んでるぽい→ディレクトリがないから?
out.write((byte)(save.highscore+(int)(save.highrate*1000))); //このやり方はあっているのか
out.close();
} catch (IOException e) {
int eraa = 100000000;
}
}
}
private boolean sdcardWriteReady(){ //SDを使用可能ならTRUE
String state = Environment.getExternalStorageState();
return (Environment.MEDIA_MOUNTED.equals(state));
}
//ハイスコアなどを保存した構造体"save_data型のsave"があったとして
FILE* pFile;
if((pFile = fopen( "save.dat", "wb" ))==NULL){
throw(-1);
}else{
fwrite( &save, sizeof(save_data), 1, pFile );
fclose(pFile);
}
参考にしたサイト:素人のAndroid開発日記