我正在尝试在外部SD卡存储中创建一个文件。该文件尚未创建。 有趣的是,我已经从其他一个完美运行的项目中复制了create_file()。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
create_file();
}
private void create_file() {
String pathToExternalStorage = Environment.getExternalStorageDirectory()
.toString();
File appDirectory = new File(pathToExternalStorage + "/" + "Accel");
appDirectory.mkdirs();
String fname = "Data.txt";
File f_data = new File(appDirectory, fname);
try {
if (!f_data.exists()) {
f_data.createNewFile();
Toast.makeText(this, "File Created", Toast.LENGTH_SHORT).show();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
答案 0 :(得分:3)
首先,我会检查您的AndroidManifest.xml
文件中是否添加了适当的权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
更重要的是,我检查了文档,我猜测而不是调用.toString()
:
String pathToExternalStorage = Environment.getExternalStorageDirectory().toString()
你应该在那里使用.getPath()
方法:
String pathToExternalStorage = Environment.getExternalStorageDirectory().getPath()
答案 1 :(得分:1)
您应该添加以下权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
在你的清单中。