小编典典

Android-将资产复制到内部存储

java

美好的一天!

我刚刚开始为Android开发。在我的应用中,我需要将资产文件夹中的项目复制到内部存储中。

我在SO上进行了大量搜索,包括将其复制到外部存储的内容。

这就是我要实现的目标:内部存储中已经存在一个目录,即X> Y> Z。我需要将一个文件复制到Y,将另一个复制到Z。

任何人都可以通过代码片段帮助我吗?我真的不知道该如何继续。

对不起,我的英语不好。

非常感谢。


阅读 175

收藏
2020-09-08

共1个答案

小编典典

 String out= Environment.getExternalStorageDirectory().getAbsolutePath() + "/X/Y/Z/" ;

        File outFile = new File(out, Filename);

在您的参考中编辑后。链接答案。

private void copyAssets() {
    AssetManager assetManager = getAssets();
    String[] files = null;
try {
    files = assetManager.list("");
} catch (IOException e) {
    Log.e("tag", "Failed to get asset file list.", e);
  }
 for(String filename : files) {
    InputStream in = null;
    OutputStream out = null;
    try {
      in = assetManager.open(filename);

      String outDir = Environment.getExternalStorageDirectory().getAbsolutePath() + "/X/Y/Z/" ;

      File outFile = new File(outDir, filename);

      out = new FileOutputStream(outFile);
      copyFile(in, out);
      in.close();
      in = null;
      out.flush();
      out.close();
        out = null;
      } catch(IOException e) {
          Log.e("tag", "Failed to copy asset file: " + filename, e);
         }       
       }
     }
     private void copyFile(InputStream in, OutputStream out) throws IOException {
        byte[] buffer = new byte[1024];
      int read;
     while((read = in.read(buffer)) != -1){
       out.write(buffer, 0, read);
     }
   }
2020-09-08