我有代码将文件复制到新位置,然后在这个新位置打开文件。据我所知,有一个问题是代码可能会在复制完成之前尝试打开文件。
此问题特定于Firefox扩展,它将sqlite数据库从默认位置复制到用户指定的新位置。如果新位置中不存在sqlite文件,则对openDatabase
的调用将创建一个新的空白数据库。
// some pseudocode
var old_path // is an nsILocalFile instance
var new_path // is an nsILocalFile instance
// copy file
old_path.copyTo(new_path)
// open sqlite database
var ss = Components.classes["@mozilla.org/storage/service;1"]
.getService(Components.interfaces.mozIStorageService);
var db = ss.openDatabase(new_path)
我该如何等待副本完成? (事件,事件听众,观察者......?)
答案 0 :(得分:0)
Neil对我的问题的评论促使我检查我的代码,我想我发现了一个错误导致sqlite文件被错误覆盖的错误。
结束问题。