2015-07-19 107 views
0

我想从资产文件夹复制图像到SD卡,但似乎并没有复制它首次启动。它创建文件夹好,但不会复制文件。从资产文件夹复制文件到SD卡似乎并不工作

prefs = getPreferences(Context.MODE_PRIVATE); 
    if (prefs.getBoolean("firstLaunch", true)) { 
     prefs.edit().putBoolean("firstLaunch", false).commit(); 
    File nfile=new File(Environment.getExternalStorageDirectory()+"/My Images"); 
    nfile.mkdir(); 
    } 
    AssetManager assetManager = getAssets(); 
    String[] files = null; 
    try { 
     files = assetManager.list("middle.jpg"); 
    } 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); 
      File outFile = new File(Environment.getExternalStorageDirectory()+ "/My Images" + filename); 
      out = new FileOutputStream(outFile); 
      copyFile(in, out); 
     } catch(IOException e) { 
      Log.e("tag", "Failed to copy asset file: " + filename, e); 
     }  
     finally { 
      if (in != null) { 
       try { 
        in.close(); 
       } catch (IOException e) { 

       } 
      } 
      if (out != null) { 
       try { 
        out.close(); 
       } catch (IOException e) { 

       } 
      } 
     } 
    } 

    private void copyFile(InputStream in, OutputStream out) { 
    // TODO Auto-generated method stub 

} 

middle.jpg是我想复制的文件。任何人都可以告诉我我做错了什么?

PS我在我的清单中有WRITE_EXTERNAL_STORAGE

感谢

回答

0

你忘了加/中/我的图片结束而构建的路径

File outFile = new File(Environment.getExternalStorageDirectory()+ "/My Images/" + filename); out = new FileOutputStream(outFile);

因为文件名会MyImages +文件名这样就不会存在复制。

+0

mmmm我现在真的觉得很蠢:-)感谢您的帮助:-) – Allrounder

+0

现在工作。 – Allrounder