次の方法で共有


IBackgroundCopyJob::AddFile メソッド (bits.h)

ジョブに 1 つのファイルを追加します。

構文

HRESULT AddFile(
  [in] LPCWSTR RemoteUrl,
  [in] LPCWSTR LocalName
);

パラメーター

[in] RemoteUrl

サーバー上のファイルの名前を含む null で終わる文字列。 リモート名の指定については、BG_FILE_INFO構造体の RemoteName メンバーおよび解説セクションを参照してください。

[in] LocalName

クライアント上のファイルの名前を含む null で終わる文字列。 ローカル名の指定については、BG_FILE_INFO構造体の LocalName メンバーと解説セクションを参照してください。

戻り値

このメソッドは、次の HRESULT 値と他の値を返します。

リターン コード Description
S_OK
ファイルがジョブに正常に追加されました。
BG_E_TOO_MANY_FILES
アップロード ジョブに含めることができるファイルは 1 つだけです。ジョブに別のファイルを追加することはできません。
BG_E_TOO_MANY_FILES_IN_JOB
MaxFilesPerJob グループ ポリシー設定は、ジョブに含めることができるファイルの数を決定します。 ジョブへのファイルの追加が MaxFilesPerJob の制限を超えています。
E_INVALIDARG
このエラーは、次のいずれかの理由で発生する可能性があります。
  • ローカルまたはリモートのファイル名が無効です。
  • リモート ファイル名では、サポートされていないプロトコルが使用されます。
  • ローカル ファイル名は、相対パスを使用して指定されました。
E_ACCESSDENIED
ユーザーには、クライアント上の指定されたディレクトリに書き込むアクセス許可がありません。

注釈

ジョブに一度に複数のファイルを追加するには、 IBackgroundCopyJob::AddFileSet メソッドを呼び出します。 複数のファイルをジョブに追加する場合は、ループで AddFile メソッドを呼び出すよりも、 AddFileSet メソッドを呼び出す方が効率的です。 詳細については、「 ジョブへのファイルの追加」を参照してください。

BITS がファイルからデータ範囲をダウンロードするジョブにファイルを追加するには、 IBackgroundCopyJob3::AddFileWithRanges メソッドを呼び出します。

アップロード ジョブに含めることができるファイルは 1 つだけです。 2 つ目のファイルを追加すると、メソッドはBG_E_TOO_MANY_FILESを返します。

ダウンロードの場合、BITS は転送するファイルのバージョン (コンテンツではなく、ファイル のサイズと日付に基づく) が一貫していることを保証します。ただし、一連のファイルに一貫性があることを保証するものではありません。 たとえば、BITS がサーバーでファイルが更新された時点で、ジョブ内の 2 つ目のファイルのダウンロードの途中にある場合、BITS は 2 番目のファイルのダウンロードを再開します。ただし、最初のファイルは再びダウンロードされません。

サーバーからダウンロードするファイルを所有している場合は、新しいバージョンのファイルごとに新しい URL を作成する必要があることに注意してください。 新しいバージョンのファイルに同じ URL を使用する場合、一部のプロキシ サーバーは、ファイルが古い場合は元のサーバーで検証されないため、キャッシュから古いデータを提供する可能性があります。

アップロードの場合、ファイルの転送中にローカル ファイルが変更されると、BITS によってエラーが生成されます。 エラー コードがBG_E_FILE_CHANGEDされ、コンテキストがBG_ERROR_CONTEXT_LOCAL_FILE。

BITS は、ジョブ内のファイルを順番に転送します。 ファイルの転送中にエラーが発生した場合、ジョブはエラー状態に移行し、エラーが解決されるまでジョブ内のそれ以上のファイルは処理されません。

既定では、ユーザーはジョブに最大 200 個のファイルを追加できます。 この制限は、管理者またはサービス アカウントには適用されません。 既定値を変更するには、 MaxFilesPerJob グループ ポリシーを設定します。

Windows Vista より前のバージョン: ユーザーがジョブに追加できるファイルの数に制限はありません。

スケーラビリティの問題については、BITS を 使用する場合のベスト プラクティスに関する説明を参照してください。

例示

ジョブに 1 つのファイルを追加する例については、「ジョブ へのファイルの追加」を参照してください。

Requirements

Requirement 価値
サポートされる最小クライアント Windows XP
サポートされている最小のサーバー Windows Server 2003
ターゲット プラットフォーム ウィンドウズ
Header bits.h
Library Bits.lib
DLL QmgrPrxy.dll

こちらも参照ください

IBackgroundCopyJob3::AddFileWithRanges

IBackgroundCopyJob::AddFileSet

IBackgroundCopyJob::EnumFiles

IBackgroundCopyJob::GetState

IBackgroundCopyJob::Resume