我有一个需要使用 Sqlite DB 的 Win8 应用程序;每次应用程序启动时,我都会检查该文件是否存在,如果不存在,我会尝试复制它。问题是当我复制它时,应用程序试图在复制结束之前打开它,我得到一个错误:
我调用以下函数,然后尝试查询数据库:
public async static void CopyDatabase()
{
bool isExisting = false;
try
{
StorageFile storage = await ApplicationData.Current.LocalFolder.GetFileAsync("dbname.db");
isExisting = true;
}
catch (Exception ex)
{
isExisting = false;
}
if (!isExisting)
{
StorageFile databaseFile = await Package.Current.InstalledLocation.GetFileAsync("dbname.db");
await databaseFile.CopyAsync(ApplicationData.Current.LocalFolder);
}
}
我怎么知道副本何时结束?我究竟做错了什么?