如何在外部SD卡中创建文件夹?

时间:2014-09-23 08:38:44

标签: android memory android-sdcard

我有一项任务是将.txt保存在外部SD卡(非设备内存)中。我试过各方面的事。我无法获得所需的输出。该文件夹仅在内部设备SD卡中创建和保存。我使用了以下代码。

 private File mPath = new File(Environment.getExternalStorageDirectory()
        .getAbsolutePath() + "/Research/"+filname+".txt");

我还将以下代码放在Manifest文件中

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

但它不起作用。请帮助我。提前谢谢。

4 个答案:

答案 0 :(得分:1)

您无法在Android上可靠地确定可移动媒体(Micro SD卡)的路径。所以停止尝试。最好让用户指出该路径。

答案 1 :(得分:1)

这是解决方案

Environment.getExternalStorageDirectory()

以上代码返回&#34; / storage / sdcard0&#34;,但是如果你想在外部SD卡上创建一个文件夹,你需要&#34; / storage / sdcard1&#34;。所以尝试做这样的事情

private File mPath = new File(Environment.getExternalStorageDirectory().replace("0", "1")
    .getAbsolutePath() + "/Research/"+filname+".txt");

答案 2 :(得分:0)

使用mkDir()mkDirs()创建新的文件夹/文件夹:

private File mPath = new File(Environment.getExternalStorageDirectory()
        .getAbsolutePath() + "/Research/");
mPath.mkDir();

 mPath = new File(Environment.getExternalStorageDirectory()
        .getAbsolutePath() + "/Research/"+filname+".txt");

答案 3 :(得分:0)

我不确定这可以帮到你,但我有同样的问题,这个代码解决了它。创建此私有类:

private class SingleMediaScanner implements MediaScannerConnectionClient {

    private MediaScannerConnection mMs;
    private File mFile;

    public SingleMediaScanner(Context context, File f) {
        mFile = f;
        mMs = new MediaScannerConnection(context, this);
        mMs.connect();
    }

    @Override
    public void onMediaScannerConnected() {
        mMs.scanFile(mFile.getAbsolutePath(), null);
    }

    @Override
    public void onScanCompleted(String path, Uri uri) {
        mMs.disconnect();
    }

}

创建文件后调用:

new SingleMediaScanner(MainActivity.this, file);

我希望这可以帮到你。