gpt4 book ai didi

java - Android ContextWrapper fileList() 看不到我的文件

转载 作者:行者123 更新时间:2023-12-02 04:34:55 27 4
gpt4 key购买 nike

我在 res/raw 文件夹中有一个 xml 文件,我想在我的应用程序中使用它。为什么我在真实设备上调试时 fileList() 看不到它?

最佳答案

ContextWrapperfileList()不返回 res/raw 的内容,而是返回您存储在上下文的应用程序包中的文件,例如( /data/data/your.app/ )。要检索 res/raw 的内容,您可以使用反射。例如

public ArrayList<String> listRaw() {
ArrayList<String> raw = new ArrayList<>();
Field[] fields = R.raw.class.getFields();
for (int i = 0; i < fields.length; i++) {
raw.add(fields[i].getName());
}
return raw;
}

它将返回 List<String>内容为res/raw 。如果你想获取 id 你可以使用

getResoruces().getIndentifier(name, "raw", getPackageName());

编辑,复制文件

private void copyFile () {
InputStream in = getResources().openRawResource(R.raw.myresource);
FileOutputStream out = openFileOutput("filename", Context.MODE_PRIVATE);
byte[] buff = new byte[1024];
int read = 0;

try {
while ((read = in.read(buff)) > 0) {
out.write(buff, 0, read);
}
} finally {
in.close();
out.close();
}
}

关于java - Android ContextWrapper fileList() 看不到我的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30956385/

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