如果您使用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
使用以下代码创建了一个文件:
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
来自sdcard/android/data/com.example.testdir
.