gio*_*ozh 2 android android-external-storage
我在Android/data文件夹中创建文件夹时遇到问题.我的代码需要创建文件夹,并从其中的asset文件夹中复制文件.这是我的代码:
private File getFileForShare(String filename) {
try {
String extStorageDirectory = Environment.getExternalStorageDirectory().toString();
File folder = new File(extStorageDirectory, "/Android/data/" + context.getPackageName());
if (!folder.exists()) {
folder.mkdir();
}
AssetManager am = context.getAssets();
InputStream inputStream = am.open("audio/" + filename);
File f = new File(folder.getAbsolutePath(), filename);
OutputStream outputStream = new FileOutputStream(f);
byte buffer[] = new byte[1024];
int length = 0;
while ((length = inputStream.read(buffer)) > 0) {
outputStream.write(buffer, 0, length);
}
outputStream.close();
inputStream.close();
return f;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
我初始化OutputStream对象时获取FileNotFoundException.此外,如果我转到Android/data文件夹,则不会创建包含我的应用程序包名称的新文件夹.在清单中我设置了读写存储权限.怎么了?
怎么了?
获取主设备所有者驻留在Android/data/外部存储上的目录的正确方法就是调用getExternalFilesDir()可用的目录Context.更换:
String extStorageDirectory = Environment.getExternalStorageDirectory().toString();
File folder = new File(extStorageDirectory, "/Android/data/" + context.getPackageName());
Run Code Online (Sandbox Code Playgroud)
有:
File folder = context.getExternalFilesDir();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1659 次 |
| 最近记录: |