API レベル 7 以下を使用している場合はgetExternalStorageDirectory()
、を使用して、外部ストレージのルートを表すファイルを開きます。次に、次のディレクトリにデータを書き込む必要があります。
/Android/data/<package_name>/files/
は<package_name>
、Java スタイルのパッケージ名です ( "com.example.android.app"
. ユーザーのデバイスがAPI レベル 8 以上を実行していて、アプリケーションをアンインストールすると、このディレクトリとそのすべてのコンテンツが削除されます。
詳細については、この記事を確認してください。
編集:
これを確認してください/Android/data/com.example.testdir/files/scanned.txt
。以下のコードを使用して1つのファイルを作成しただけです:
package com.example.testdir;
import java.io.File;
import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.view.Menu;
import android.view.View;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
public void clickBtn(View v) {
if (v.getId() == R.id.button1) {
File sdcard = new File(Environment.getExternalStorageDirectory()
+ "/Android/data/com.example.testdir/files/");
if (!sdcard.exists())
sdcard.mkdirs();
File file = new File(sdcard, "scanned.txt");
if (!file.exists()) {
try {
file.createNewFile();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
}
}
そして、私はこの許可も追加しました
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<package_name>
私の場合、フォルダ名がcom.example.testdir
fromのフォルダ名を削除しますsdcard/android/data/com.example.testdir
。