未创建文本文件

时间:2013-11-13 14:27:50

标签: java android

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

2 个答案:

答案 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" />
在你的清单中