(私は間違っていない場合や、当初jetpack
)私はAddon SDK
で何ができるかである、と私はきれいにそれを行う方法がわからないので、ええ、それはハックのようなものです私はRequire Chrome
を使いたくありません。
最小バージョン:
// index.js or main.js
// declare the io/file API :
var ioFile = require('sdk/io/file');
// array to make attempts :
let drivesIds = ["c", "d", "e", "f", "g", .... "z" ]; // hack isn't it ? :/
for (let i = 0; i < drivesIds.length; i++) {
let driveName = drivesIds[i] + ":\\";
if (ioFile.exists(driveName)) {
console.log(driveName + " is a drive and is ready !");
}
}
そして、あなたが行われています!さて、それはかなり明白だったが、私はどこでも私が検索、またはそれが良い(再び、require('chrome')
なし)
拡張バージョンができないコードそのコードを見つけることができませんでした:
- は全体の事を置きます
{ path: "c:\\", hasChildren: true, etc: "etc" }
のようなドライブオブジェクトの配列を返す関数getDrives()
があります。 (サブディレクトリが検出された瞬間を破るfor
ループ内ioFile.list()
とioFile.isFile()
を組み合わせることにより、子ディレクトリをチェック。
- ポートのコードを別のアドオンモジュールに、エクスポート実装で
- ものメンバーとしてIO機能およびプロパティをカプセル化モジュール内のグローバルオブジェクトは、
すべてのこと、あなたのindex.js
ファイルを軽量化。これは、他のOSに適合させることができますか?私はありません(あなたは、ファイルシステムのアンプラグドディレクトリ、メモリ内に格納するファイルシステムツリーなどのような変化を監視することができます)知っている。タイトルが誤解を招くのは、アドオンSDKがタグ付けされたドライブのリストを表示する唯一の質問です。
io /ファイルがWindowsのパス長で250〜260文字に制限されているため、ドライブツリー全体を構築しようとすると、コンピュータが停止することがあります。
セキュリティ上の問題! WebExtensionsがioの操作を拒否する理由は、おそらく文書化されていないのでしょうか? しかし、、私は良いウィンドウエクスプローラ(あなたがそこに欲しいものを保存するためにdirを選択する、ショートカットとして保存するか、ダイアログをダウンロードする)を注入するために使用します。それがFirefoxを使う唯一の理由です。私はdotNetに戻って、ioがWEに十分な柔軟性を持たない(または欠落している)場合や、Chromeを代わりに試してみると、セキュリティホールを再び作り直すだろう(今後10年間で廃止予定のAPIがない場合)。事実、あなたがioの解析を自動化することができる瞬間、セキュリティ上の問題が生じるでしょうが、あなたがそれを許さない瞬間、アドオンの拡張はファイルシステムと一緒に行く方法ではありません。