Android:将外部文件链接到Eclipse项目

时间:2011-11-15 12:29:56

标签: android eclipse project

我工作的应用程序有一个外部SQLite数据库(位于assets文件夹中)。我的朋友在应用程序的iPhone版本中使用相同的DB文件。 DB文件的内容不断更新。由于两个项目都在同一个存储库中,因此我们创建了一个Shared文件夹,我们保留了DB文件,因此两个项目都可以链接到该共享资源。它适用于iPhone项目但在Android中失败。

在Eclipse中,我点击 assets / new / file 并点击高级然后链接到文件系统中的文件 。该文件出现在assets文件夹中(在Eclipse中),但我无法从JAVA代码访问它。

为什么这不起作用?还有其他的东西是将外部文件链接到Eclipse中的项目吗?

由于

编辑:

我使用此代码打开资产文件:

OutputStream os = new FileOutputStream(db_path + DB_NAME);
byte []b = new byte[1024];
int i, r;

//load list of files from 'data' folder
String[] fileCollection = am.list("data");
Arrays.sort(fileCollection);
for(i=0;i<fileCollection.length;i++)
{
    //String fn = String.format(DB_NAME"%dd.db", (i + 1));
    String fn = DB_NAME + "." + (i + 1);
    if(fileCollection[i].equals(fn) == false){
        break;
    }
    InputStream is = am.open("data/"+fn);
    while((r = is.read(b)) != -1) {
        os.write(b, 0, r);
    }
    is.close();
}
os.close();

1 个答案:

答案 0 :(得分:1)

从你提供的详细信息中我得出结论,你不能直接从资产目录中使用数据库文件,你必须将该数据库文件复制到应用程序的内部存储data/data/database/然后使用它。

编辑:

我认为 Android环境无法识别您系统文件的物理路径,因此当我们尝试链接任何文件以获取资产或任何属于android项目层次结构的文件夹时,它就可以找不到从系统路径链接的文件。

So to make it working in android you have to put that file in your asset directory physically, not virtually (by putting file link in asset).

希望我没错。如果是,请告诉我这个主题。

感谢。