【问题标题】:how to import database from downloads folder如何从下载文件夹中导入数据库
【发布时间】:2016-05-25 18:50:20
【问题描述】:

    public void copyDbToInternalFolder() throws IOException {

        String DB_PATH = Environment.getDataDirectory().getPath()+getPackageName()+"/Databases/"; // Don't worry I know this line doesn't work, however, nothing was working
        String DB_NAME = "Client_Responses.db";


        InputStream myInput = context.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS,"Client_Responses.db"); //needs to get database file from Downloads folder
        String outFileName = DB_PATH + DB_NAME;
        OutputStream myOutput = new FileOutputStream(outFileName);

        byte[] buffer = new byte[1024];
        int length;
        while ((length = myInput.read(buffer))>0){
            myOutput.write(buffer, 0, length);
        }

        myOutput.flush();
        myOutput.close();
        myInput.close();


    }

我已经编写了几个相关的应用程序,它们在设备下载文件夹中创建 sqlite 数据库文件。我需要坚持这种方法,才能一直支持到第一代平板电脑。本质上是 API 8。

现在,管理员需要从 Downloads 文件夹中导入找到的文件,并将它们导入到自己的数据库文件夹中。

上面的代码不起作用,空指针异常和不正确的文件名/路径名会产生错误,应用程序将强制退出,我已经尝试了一切。我的想法现在陷入了瓶颈。

我一直在为此苦苦挣扎,欢迎提供意见。

注意:我很可能会在不同的类文件中复制代码,每个类文件都复制不同的数据库名称。

【问题讨论】:

标签: android sqlite import


【解决方案1】:
private void copyDbToInternalFolder() throws IOException {

    String ToDB_PATH = "/data/data/"+this.getPackageName()+"/databases/";

    String sourcePath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/Client_Responses.db";
    File source = new File(sourcePath);

    String destinationPath = ToDB_PATH + "/" + DB_NAME;
    File destination = new File(destinationPath);
    try
    {
        FileUtils.copyFile(source, destination);
    }
    catch (IOException e)
    {
        e.printStackTrace();
    }
}

这似乎适用于 Android4.2.2 平板电脑,但不适用于模拟器。我无法确定问题是否在于模拟器以及它如何处理路径创建,或者它的 API8 是否无法理解它们。如果有人有任何建议,我将不胜感激。所以这个问题只是部分回答了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-30
    • 1970-01-01
    • 1970-01-01
    • 2018-07-18
    • 2018-06-23
    • 2011-11-23
    • 2020-03-24
    相关资源
    最近更新 更多