我有一项任务是将.txt保存在外部SD卡(非设备内存)中。我试过各方面的事。我无法获得所需的输出。该文件夹仅在内部设备SD卡中创建和保存。我使用了以下代码。
private File mPath = new File(Environment.getExternalStorageDirectory()
.getAbsolutePath() + "/Research/"+filname+".txt");
我还将以下代码放在Manifest文件中
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
但它不起作用。请帮助我。提前谢谢。
答案 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);
我希望这可以帮到你。