我是Android开发的新手,我正在寻找一种方法来修改eclipse中的现有源代码,以便在安装apk时,将xml文件从apk内部复制到外部存储上的特定文件夹。
有办法做到这一点吗?
答案 0 :(得分:3)
请在此处查看问题和答案... Android: How to create a directory on the SD Card and copy files from /res/raw to it??
编辑:想一想,我使用/ assets文件夹而不是/ res / raw。这大致就是我做的......
首先在外部存储设备(通常为SD卡)上获取有效文件夹...
File myFilesDir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Android/data/com.mycompany.myApp/files");
使用您应用的包名替换上面路径中的com.mycompany.myApp
。
然后,以下内容将复制assets文件夹中所有文件,文件名以“xyz”开头,例如xyz123.txt,xyz456.xml等。
try {
AssetManager am = getAssets();
String[] list = am.list("");
for (String s:list) {
if (s.startsWith("xyz")) {
Log.d(TAG, "Copying asset file " + s);
InputStream inStream = am.open(s);
int size = inStream.available();
byte[] buffer = new byte[size];
inStream.read(buffer);
inStream.close();
FileOutputStream fos = new FileOutputStream(myFilesDir + "/" + s);
fos.write(buffer);
fos.close();
}
}
}
catch (Exception e) {
// Better to handle specific exceptions such as IOException etc
// as this is just a catch-all
}
请注意,您需要AndroidManifest.xml文件中的以下权限...
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />