4

我对 android 开发非常陌生,正在寻找一种方法来修改 eclipse 中的现有源代码,以便在安装 apk 时,将 xml 文件从 apk 内部复制到外部存储上的特定文件夹中。

有没有办法做到这一点?

4

1 回答 1

4

在此处查看问题和答案... Android:如何在 SD 卡上创建目录并将文件从 /res/raw 复制到其中?

编辑:考虑一下,我使用 /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" />
于 2011-03-20T20:48:48.000 回答