【发布时间】:2014-11-23 23:16:55
【问题描述】:
这是 MyNewMain.java
CopyAssets();
private void CopyAssets() {
AssetManager assetManager = getAssets();
String[] files = null;
try {
files = assetManager.list("Files");
} catch (IOException e) {
Log.e("tag", e.getMessage());
}
for(String filename : files) {
System.out.println("File name => "+filename);
InputStream in = null;
OutputStream out = null;
try {
in = assetManager.open("Files/"+filename);
out = new FileOutputStream(Environment.getExternalStorageDirectory().toString() +"/" + filename);
copyFile(in, out);
in.close();
in = null;
out.flush();
out.close();
out = null;
} catch(Exception e) {
Log.e("tag", e.getMessage());
}
}
}
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);
}
}
在我的资产文件夹中,我有一个名为 Files 的文件夹。有.txt文件 onCreate 方法我正在调用 CopyAssets();
下面是我使用的方法。
问题是这什么也没做。我绝对不知道为什么我的文件没有被复制。 在我的清单中我添加了
并且 app.iml 包含
【问题讨论】:
-
什么都没有?
System.out.println("File name => "+filename);。那打印什么?你为什么要发布这么多与你的问题无关的代码?只有 CopyAssets() 会这样做。请编辑您的帖子。 -
Environment.getExternalStorageDirectory().toString()。试试Environment.getExternalStorageDirectory().getAbsolutePath()。 -
我已经编辑了我的帖子。
-
我已经尝试过 greenapps 建议的 .getAbsolutePath() 但没有用
-
这段代码很完美..检查你是否在manifest.xml中设置了所需的权限
标签: java android methods copy assets