Visit Mozilla.org

nsIDownloadManager

出典: MDC

この記事は Firefox 3 の新機能について述べています

nsIDownloadManager インタフェースは、アプリケーションや拡張機能がダウンロードマネージャとやりとりできるようにします。例えば、ダウンロードするファイルの追加や削除、ダウンロードに関する情報の取得、ダウンロード完了時の通知取得、といった機能を備えています。

目次

nsIDownloadManagertoolkit/components/downloads/public/nsIDownloadManager.idl で定義されています。これは scriptable非凍結です。 (Mozilla 1.9から更新されていません)

継承元: nsISupports

実装: @mozilla.org/download-manager;1。インスタンスを作成するには、以下のように記述します。

var dm = Components.classes["@mozilla.org/download-manager;1"]
                   .createInstance(Components.interfaces.nsIDownloadManager);

[編集] メソッドの概要

nsIDownload addDownload(in short aDownloadType, in nsIURI aSource, in nsIURI aTarget, in AString aDisplayName, in nsIMIMEInfo aMIMEInfo, in PRTime aStartTime, in nsILocalFile aTempFile, in nsICancelable aCancelable)
nsIDownload getDownload(in unsigned long aID)
void cancelDownload(in unsigned long aID)
void removeDownload(in unsigned long aID)
void pauseDownload(in unsigned long aID)
void resumeDownload(in unsigned long aID)
void retryDownload(in unsigned long aID)
void cleanUp()
void addListener(in nsIDownloadProgressListener aListener)
void removeListener(in nsIDownloadProgressListener aListener)

[編集] 属性

属性 説明
DBConnection mozIStorageConnection ダウンロードデータベースへのデータベース接続。読み取り専用。
canCleanUp boolean ダウンロードが、完了時、失敗時、キャンセル時に削除可能かどうかを示します。読み取り専用。
activeDownloadCount long 現在ダウンロード中のファイル数。読み取り専用。
activeDownloads nsISimpleEnumerator アクティブな nsIDownloads の列挙。読み取り専用。
defaultDownloadsDirectory nsILocalFile プラットフォーム標準のダウンロードディレクトリを返します。読み取り専用。
userDownloadsDirectory nsILocalFile ユーザが設定したダウンロードディレクトリを返します。読み取り専用。

上記のパスは、ユーザが編集可能な 2 つの設定項目に依存します。

browser.download.folderList は、標準のダウンロード場所を定義します。

  • 0: ファイルは初期設定ではデスクトップにダウンロードされます。
  • 1: ファイルは初期設定ではシステム標準のダウンロードフォルダにダウンロードされます。
  • 2: ファイルは browser.download.dir で設定されたローカルパスにダウンロードされます。この設定値が不正な場合、ダウンロードディレクトリは初期設定値にフォールバックされます。

[編集] 定数

定数 説明
DOWNLOAD_NOTSTARTED -1 ダウンロードはまだ開始されていません。
DOWNLOAD_DOWNLOADING 0 ダウンロードは現在進行中です。
DOWNLOAD_FINISHED 1 ダウンロードは完了しました。
DOWNLOAD_FAILED 2 ダウンロードは失敗しました。
DOWNLOAD_CANCELED 3 ユーザがダウンロードをキャンセルしました。
DOWNLOAD_PAUSED 4 ダウンロードは中止されています。
DOWNLOAD_QUEUED 5 ダウンロードは待ち状態で、まだダウンロードは開始されていません。
DOWNLOAD_BLOCKED 6 保護者による制限 (ペアレンタルコントロール) が働いたために、あるいは、そのファイルがウイルスに感染していて駆除できないとウイルス対策ソフトによって判断されたために、ダウンロードはブロックされました。
DOWNLOAD_SCANNING 7 ダウンロードはウイルス対策ソフトによってスキャンが行われています。
DOWNLOAD_TYPE_DOWNLOAD 0 不明

[編集] メソッド

[編集] addDownload()

nsIDownload を作成し、ダウンロードマネージャが管理できるように追加します。

nsIDownload addDownload(
  in short aDownloadType, 
  in nsIURI aSource,
  in nsIURI aTarget,
  in AString aDisplayName,
  in nsIMIMEInfo aMIMEInfo,
  in PRTime aStartTime,
  in nsILocalFile aTempFile,
  in nsICancelable aCancelable
)
[編集] 引数
aDownloadType
転送するダウンロードの種類。詳細不明
aSource
ファイルの取得元 URI。null にはなりません。
aTarget
転送されたファイルが保存される場所を示した URI。null にはなりません。
aDisplayName
ユーザが読める形での転送の説明。空白文字になる可能性があります。
aMIMEInfo
ターゲットファイルに関連付けられた MIME 情報。これには、MIME タイプや、適切な場合にはヘルパーアプリケーションが含まれます。このパラメータはオプションです。
startTime
ダウンロードの開始時刻。
aTempFile
一時ファイル (受信したデータが保存されるファイルで、ターゲットファイルとは異なります) の場所。ダウンロードが完了すると、ファイルは aTarget によって示される場所に移動されます。これは null になる可能性があります。
aCancelable
ダウンロードをキャンセルするために使用できるオブジェクト。null にはなりません。
[編集] 戻り値

新たに作成された、渡されたプロパティを伴ったダウンロード項目。

注: ダウンロードを追加しても、即座に転送が開始されるわけではありません。追加した後ダウンロードを開始したい場合は、nsIWebBrowserPersist オブジェクトを作成し、このメソッドを呼び出し、戻り値となるダウンロードオブジェクトのための progressListener を設定し、その後で saveURI() メソッドを呼び出す必要があります。

[編集] getDownload()

ダウロードマネージャによって管理されているダウンロードを取得します。これは、進行中、あるいは完了したダウンロードで、データベースに保存されている項目になります。

nsIDownload getDownload(
  in unsigned long aID
)
[編集] 引数
aID
ダウンロードの固有 ID。
[編集] 戻り値

指定された ID のダウンロード。

[編集] 投げられる例外
NS_ERROR_NOT_AVAILABLE
指定されたダウンロードはデータベース内にありません。

[編集] cancelDownload()

指定された ID のダウンロードが進行中であった場合、そのダウンロードをキャンセルします。これは、そのダウンロードによって提供された nsICancelablecancel(NS_BINDING_ABORTED) を呼び出します。

 void cancelDownload(
   in unsigned long aID
 )
[編集] 引数
aID
ダウンロードの固有 ID。
[編集] 投げられる例外
NS_ERROR_FAILURE
ダウンロードが進行中ではありません。

[編集] removeDownload()

指定された ID のダウンロードが進行中でなかった場合、そのダウンロードを削除します。cancelDownload() が単純に転送をキャンセルしつつ関連情報を残すのに対して、removeDownload() は関連情報もすべて削除します。

 void removeDownload(
   in unsigned long aID
 )
[編集] 引数
aID
ダウンロードの固有 ID。
[編集] 投げられる例外
NS_ERROR_FAILURE
ダウンロードはアクティブです。

[編集] pauseDownload()

指定されたダウンロードを中止します。

 void pauseDownload(
   in unsigned long aID
 )
[編集] 引数
aID
中止するダウンロードの固有 ID。
[編集] 投げられる例外
NS_ERROR_FAILURE
ダウンロードが進行中ではありません。

[編集] resumeDownload()

指定されたダウンロードを再開します。

 void resumeDownload(
   in unsigned long aID
 )
[編集] 引数
aID
再開するダウンロードの固有 ID。
[編集] 投げられる例外
NS_ERROR_FAILURE
ダウンロードが進行中ではありません。

[編集] retryDownload()

失敗したダウンロードを再試行します。

 void retryDownload(
   in unsigned long aID
 )
[編集] 引数
aID
ダウンロードの固有 ID。
[編集] 投げられる例外
NS_ERROR_NOT_AVAILALE
ダウンロードが不明です。

[編集] cleanUp()

完了、失敗、キャンセルされたダウンロードをリストから削除します。

 void cleanUp()
[編集] 引数

ありません。

[編集] addListener()

ダウンロードマネージャにリスナーを追加します。

 void addListener(
   in nsIDownloadProgressListener aListener
 )
[編集] 引数
aListener
ダウンロードマネージャからステータス情報を受け取る nsIDownloadProgressListener オブジェクト。

[編集] removeListener()

ダウンロードマネージャからリスナーを削除します。

 void removeListener(
   in nsIDownloadProgressListener aListener
 )
[編集] 引数
aListener
ダウンロードマネージャのリスニングを中止する nsIDownloadProgressListener オブジェクト。

[編集] 関連記事