1
完成我的代碼將文件複製到新的位置,然後打開該文件在這個新位置。據我所知,在複製完成之前,代碼可能會嘗試打開文件存在問題。等待文件複製到Firefox擴展
此問題是特定的Firefox擴展其複製從默認位置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)
如何等待副本完成? (事件,事件監聽器,觀察員......?)
CopyTo從是同步的。你確定這個問題實際上並不是在複製之前沒有關閉的舊文件? – Neil 2011-04-05 23:25:20
謝謝你讓我知道。一直在檢查我的代碼,它看起來像我的錯誤 - 我會做更多的檢查,以確保它現在正常工作。當我遇到問題時,我認爲'copyTo'可能是異步的。 – 2011-04-07 02:28:59
我會關閉這個問題,因爲這是我造成問題的錯誤。 – 2011-04-07 02:29:38