2
A
回答
4
是的,有這樣的一個簡單的方法。正常的方法是使用nsIFilePicker。
與該頁上的示例的主要區別在於傳遞給init()
方法的參數中,指定nsIFilePicker.modeGetFolder
爲mode
。另外,鑑於您正在查找目錄,您只想包含nsIFilePicker.filterAll
過濾器,而不是針對特定擴展類型的過濾器。從MDN頁
實施例的代碼,修改用於拾取文件夾(以及給出說明性的變量名):
if (window === null || typeof window !== "object") {
//If you do not already have a window reference, you need to obtain one:
// Add a "/" to un-comment the version appropriate for your environment.
/* Add-on SDK environment:
var window = require('sdk/window/utils').getMostRecentBrowserWindow();
//*/
/* Overlay and bootstrap environments (from almost any context/scope):
var window = Components.classes["@mozilla.org/appshell/window-mediator;1"]
.getService(Components.interfaces.nsIWindowMediator)
.getMostRecentWindow("navigator:browser");
//*/
}
const nsIFilePicker = Components.interfaces.nsIFilePicker;
var filePicker = Components.classes["@mozilla.org/filepicker;1"]
.createInstance(nsIFilePicker);
filePicker.init(window, "Dialog Title", nsIFilePicker.modeGetFolder);
filePicker.appendFilters(nsIFilePicker.filterAll);
var pickerStatus = filePicker.show();
if (pickerStatus == nsIFilePicker.returnOK
|| pickerStatus == nsIFilePicker.returnReplace
) {
var file = filePicker.file;
// Get the path as string. Note that you usually won't
// need to work with the string paths.
var path = filePicker.file.path;
// work with returned nsILocalFile...
}
相關問題
- 1. WIX中的顯示瀏覽對話框
- 2. 如何使用MATLAB顯示文件或目錄瀏覽器對話框
- 3. 文件夾瀏覽對話框沒有顯示文件夾
- 4. Inno Setup如何在瀏覽對話框中顯示網絡?
- 5. 從我的mozilla插件記錄Firefox Web瀏覽器會話
- 6. 在Firefox瀏覽器中顯示csv
- 7. 自定義瀏覽文件夾對話框以顯示路徑
- 8. Firefox瀏覽器顯示
- 9. 在angularjs中選擇下載目錄(瀏覽文件夾對話框)
- 10. 網頁瀏覽器中的顯示下載對話框
- 11. 提示瀏覽器下載對話框
- 12. 瀏覽器顯示「目錄列表 - /」
- 13. 瀏覽jQuery對話框內
- 14. 瀏覽文件夾對話框
- 15. 文件瀏覽器對話框實現
- 16. Outlook文件夾瀏覽對話框?
- 17. WebView顯示選擇操作對話框,不瀏覽
- 18. 強制瀏覽器不顯示打印對話框
- 19. 如何在Firefox擴展模塊對話框中居中顯示?
- 20. 如何在瀏覽器中查看圖像/ pdf並在瀏覽器中加載後顯示下載對話框?
- 21. 顯示TIFF的好瀏覽器插件
- 22. 在Java中下載文件的文件夾瀏覽對話框
- 23. 從Safari瀏覽器在iOS6中顯示原生推文對話
- 24. 在Firefox中顯示另存爲對話框
- 25. 瀏覽器Firefox的HTML顯示
- 26. 在C中瀏覽目錄#
- 27. 顯示模態登錄對話框
- 28. 火狐瀏覽文件對話框顯示錯誤的過濾器
- 29. 當瀏覽SQL Reporting Services時,IE7中出現登錄對話框
- 30. 顯示對話框
我不得不以獲得窗口:'VAR窗口=要求(「SDK /窗/ utils的」 ).getMostRecentBrowserWindow();'然後一切正常,謝謝! – 2014-10-10 15:30:48
謝謝你提醒我。我添加了一些代碼,可以在所有三種類型的附加環境中工作,以獲得最新的瀏覽器窗口。您能否花些時間驗證我添加的代碼在Add-on SDK環境中的作用?它應該可以在所有覆蓋層,引導程序和附加SDK中工作,但是很高興知道它在插件SDK環境中確實可行(已在其他測試中進行了測試)。謝謝。 – Makyen 2014-10-10 16:09:52
既然你使用'Components' CFX是不爽: 」 ......要做到這一點,你需要添加 線有點類似如下: 常量{抄送詞} =要求(‘鉻’);. ..' 我ususally嘗試避免'{...}'語法,因爲我停止驗證我的JavaScript的Eclipse,但我認爲大多數人將有快捷鍵(抄送,Ci)等可用,所以你可以使用它們。 – 2014-10-10 16:14:29