4

私はAndroid開発に非常に慣れていないため、apkがインストールされたときにxmlファイルがapk内から外部ストレージの特定のフォルダーにコピーされるように、Eclipseで既存のソースコードを変更する方法を探しています。

これを行う方法はありますか?

4

1 に答える 1

4

ここで質問と回答を参照してください... Android: SD カードにディレクトリを作成し、/res/raw からファイルをコピーする方法は??

編集:考えてみると、/res/raw ではなく、/assets フォルダーを使用します。これは大体私がやっていることです...

まず、外部ストレージ (通常は SD カード) に有効なフォルダーを取得します...

File myFilesDir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Android/data/com.mycompany.myApp/files");

com.mycompany.myApp上記のパスをアプリのパッケージ名に置き換えます。

次に、「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 に答える