ブレークスルー!これらはいくつかの実験的な機能を使用しており、これが実際に機能するかどうかはわかりません。まず、ダミーファイルをダウンロードして、ダウンロードディレクトリのパスを見つけましょう。
chrome.experimental.downloads.download({url:"data:text/plain,",filename:"~dummy.tmp"},
function (downloadId, error) {
if (error) { /* do stuff */ }
// get the DownloadItem object
chrome.experimental.downloads.search({downloadId: downloadId}, function(items) {
// this is the absolute filesystem location of where it was downloaded!
var filename = items[0].filename;
// if we remove dummy.tmp from the end we have the downloads directory!
// also in case it's windows replace backslashes with forward slashes.
var downloads_directory = filename.replace(/~dummy.tmp$/i,"").replace(/\\/g,"/");
});
});
この後、私はあなたの拡張を完了するための2つの方法を期待しています:
(少し難しい)ダウンロードディレクトリができたので、file:///urlにアクセスしましょう。"file://*"
マニフェストファイルに権限を追加します。chrome://extensions
ユーザーに移動して拡張機能を見つけ、その横にある[file://URLへのアクセスを許可する]にチェックマークを付けるように指示する必要があります。isAllowedFileSchemeAccessを使用して、ユーザーがこれを行ったことを確認できます。
OSに基づいて、file:///home/
またはに移動して試してください。file:///C:/
コンピュータ内のファイルのディレクトリが表示されます。XMLHttpRequestを使用してこれらのファイルのHTMLを取得できる可能性があると思います(ヒント:usexhr.responseType = "document"
)。これを解析して、フォルダーを選択するための独自のユーザーインターフェイスを構築できます。(フォルダを追加するには、追加するパスにファイルをダウンロードするだけです。)
chrome.experimental.downloads.download
また、 withを呼び出すだけでsaveAs: true
、ユーザーが保存先のフォルダーに一時ファイルをダウンロードできるようにすることもできます。次に、ファイル名を最後から削除し、ダウンロードパスを最初から削除して、将来ファイルを保存できる相対パスを取得します。
私はあなたの拡張機能がどうなるかを見てとても興奮しています。幸運を!