gpt4 book ai didi

android - 无法在 Android/data 中创建文件夹

转载 作者:太空狗 更新时间:2023-10-29 15:52:38 25 4
gpt4 key购买 nike

我在 Android/data 文件夹中创建文件夹时遇到问题。我的代码需要创建文件夹,并从其中的 Assets 文件夹复制一个文件。这是我的代码:

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;
}

我在初始化 OutputStream 对象时获得了 FileNotFoundException。此外,如果我转到 Android/data 文件夹,则不会创建包含我的应用程序包名称的新文件夹。在 list 中我设置了读写存储权限。怎么了?

最佳答案

What's wrong?

对于主要设备所有者来说,获取位于外部存储上 Android/data/ 下的目录的正确方法是调用 getExternalFilesDir()可用的 Context。替换:

    String extStorageDirectory = Environment.getExternalStorageDirectory().toString();
File folder = new File(extStorageDirectory, "/Android/data/" + context.getPackageName());

与:

    File folder = context.getExternalFilesDir();

关于android - 无法在 Android/data 中创建文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28129647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com