在Eclipse中壓縮文件並將壓縮文件(將其命名爲my_raw_files.zip
)存儲到文件夾res/raw
中,並將其與您的應用程序。然後,您可以在第一次啓動應用程序時將其複製到外部存儲設備(「sdcard」):
private static final File USER_DIR = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator
+ "myfolder");
...
boolean dirCreated = USER_DIR.mkdirs();
if (dirCreated)
{
FilesUtil.unzipFiles(this.getResources().openRawResource(R.raw.my_raw_files),
USER_DIR.getAbsolutePath());
}
...
static public void unzipFiles(InputStream zipIS, String outputPath)
{
try
{
// unzip files into existing folder structure
ZipInputStream zin = new ZipInputStream(zipIS);
try
{
ZipEntry ze;
while ((ze = zin.getNextEntry()) != null)
{
if (!ze.isDirectory())
{
Log.d(TAG, "unzip " + ze.getName());
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int count;
FileOutputStream fout = new FileOutputStream(outputPath + File.separator + ze.getName());
while ((count = zin.read(buffer)) != -1)
{
baos.write(buffer, 0, count);
byte[] bytes = baos.toByteArray();
fout.write(bytes);
baos.reset();
}
fout.close();
}
}
} finally
{
zin.close();
}
} catch (Exception e)
{
Log.e(TAG, "unzip", e);
}
}
您可以嘗試使用完整的句子編寫嗎?我無法理解問題是什麼。 –
這不應該被關閉 - 對那些熟悉android的人來說,這是一個真正的問題,正如接受的答案所指出的那樣,這是一個可以回答的問題。 –