2015-06-20 5 views

ответ

2

fileList() не возвращает содержимое 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. Если вы хотите, чтобы получить идентификатор можно использовать

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

Edit, чтобы скопировать файл

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(); 
    } 
} 
+0

Благодарим Вас за ответ! И как я могу поместить mu xml в /data/data/your.app/? – Padmelina

+0

вам нужно его скопировать. Я обновлю свой ответ на примере – Blackbelt

+0

Я отредактировал свой ответ. Измените его в соответствии с вашими требованиями – Blackbelt

Смежные вопросы