我正在开发一个 Android 应用程序,它存储 sql 文件以更新 sqlite 数据库。当用户按下某个按钮时,该 sql 脚本将运行。这是我放置 sql 文件的地方
到目前为止,我一直在使用这个解决方案来运行我的脚本: 首先,将我的更新映射到资源作为 update.xml
<resources>
<string name="update_list">
v2_9_11
</string>
<string-array name="v2_9_11">
<item>1_AlterTable_wapactivity</item>
</string-array>
</resources>
并使用此方法获取文件内的 sql 脚本:
private void runScript(String version_name){
try{
String[] sql_list = mGap.getResources().getStringArray(getArrayIdentifier(mGap, version_name));
for (String sql : sql_list) {
InputStream in = getClass().getResourceAsStream("/com/ods/scm/script/update/"+version_name+"/"+sql+".sql");
Reader fr = new InputStreamReader(in, "utf-8");
BufferedReader br = new BufferedReader(fr);
String s="";
String baris;
while((baris=br.readLine())!=null){
s+=baris;
}
mDbHelper.executeStatement(s);
}
insertUpdate(version_name);
}
catch(Exception e){
System.out.println(e.getMessage());
}
}
我从 update.xml 中获取了 String version_name 和 String[ ] sql_list 文件名。 问题是,我想获取 version_name (在本例中为 v2_9_11 作为文件夹 update 中的子文件夹名称)和 sql 文件名(在本例中为 1_AlterTable_wapactivity.sql ),而不将其映射到 update.xml 中。有人可以帮助我吗?
编辑
或者任何人都可以指导我如何在构建应用程序时自动将其映射到 update.xml ?
最佳答案
我建议您将.sql文件放在assets
文件夹中。通过这样做,您可以自由地使用文件 IO API 操作您的文件。
关于android - 获取android源码包中的子文件夹名称和文件名列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28206507/