1

我正在尝试在外部 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();
    }
}
4

2 回答 2

3

首先,我会检查您的AndroidManifest.xml文件中是否添加了适当的权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

更重要的是,我检查了文档,我猜不是打电话.toString()

String pathToExternalStorage = Environment.getExternalStorageDirectory().toString()

你应该.getPath()在那里使用方法:

String pathToExternalStorage = Environment.getExternalStorageDirectory().getPath()
于 2013-11-13T14:34:06.953 回答
1

您应该添加以下权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

在你的清单中。

于 2013-11-13T14:31:39.123 回答