安装apk时,如何让apk在sdcard上创建一个文件?

时间:2011-03-20 20:13:49

标签: android install apk sd-card createfile

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

有办法做到这一点吗?

1 个答案:

答案 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" />