我需要将我的应用程序的assets文件夹中的所有文件复制到SD卡中,以便我可以通过我的Web服务更新来写入此文件夹。但是,我似乎找不到正确的道路。下面是我目前使用的代码,用于复制数据库:
public PluginResult execute(String arg0, JSONArray arg1, String arg2)
{
String[] resourseFileNames = {"file1.html","file2.html"};
final int length = resourseFileNames.length;
try
{
String pName = this.getClass().getPackage().getName();
this.copyOriginal("Databases.db","/data/data/"+pName+"/app_database/");
this.copyOriginal("0000000000000001.db","/data/data/"+pName+"/app_database/file__0/");
for(int i=0; i<length; i++)
{
this.copyOriginal("file:///android_asset/www/" + resourseFileNames[i],"file:///SDCard/MYAPP/www/" + resourseFileNames[i]);
}
}
catch (IOException e)
{
System.err.println("Caught IOException: " + e.getMessage());
}
}
void copyOriginal(String file, String folder) throws IOException
{
File CheckDirectory;
CheckDirectory = new File(folder);
if (!CheckDirectory.exists())
{
CheckDirectory.mkdir();
}
OutputStream out = new FileOutputStream(folder+file);
InputStream in = this.ctx.getAssets().open(file);
byte[] buf = new byte[1024];
int len; while ((len = in.read(buf)) > 0) out.write(buf, 0, len);
in.close();
out.close();
}
这里的任何帮助都会非常感激,我相信我很接近,我认为错误的文件路径因为我一直收到错误(logCat - '我的文件路径defienet'(没有这样的文件或目录)。
由于
答案 0 :(得分:0)
你的清单文件中有这行吗?
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
答案 1 :(得分:0)
我上面的代码似乎是正确的,它无法正常工作的原因是由于我的传输文件太大了。最简单的解决方案是将我的固件升级到2.3.3 +