Метод IBackgroundCopyJob::AddFile (bits.h)

Добавляет в задание один файл.

Синтаксис

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

Параметры

[in] RemoteUrl

Строка, завершающаяся значением NULL, содержащая имя файла на сервере. Сведения об указании удаленного имени см. в разделе Элемент RemoteName и примечания структуры BG_FILE_INFO .

[in] LocalName

Строка, завершающаяся значением NULL, содержащая имя файла на клиенте. Сведения об указании локального имени см. в разделе Элемент LocalName и Примечания структуры BG_FILE_INFO .

Возвращаемое значение

Этот метод возвращает следующие значения HRESULT , а также другие.

Код возврата Описание
S_OK
Файл успешно добавлен в задание.
BG_E_TOO_MANY_FILES
Задания отправки могут содержать только один файл; Вы не можете добавить другой файл в задание.
BG_E_TOO_MANY_FILES_IN_JOB
Параметр групповая политика MaxFilesPerJob определяет, сколько файлов может содержать задание. Добавление файла в задание превышает ограничение MaxFilesPerJob.
E_INVALIDARG
Эта ошибка может возникнуть по одной из следующих причин:
  • Недопустимое имя локального или удаленного файла.
  • Имя удаленного файла использует неподдерживаемый протокол.
  • Имя локального файла было указано с помощью относительного пути.
E_ACCESSDENIED
Пользователь не имеет разрешения на запись в указанный каталог на клиенте.

Комментарии

Чтобы добавить в задание несколько файлов одновременно, вызовите метод IBackgroundCopyJob::AddFileSet . При добавлении нескольких файлов в задание эффективнее вызывать метод AddFileSet , чем метод AddFile в цикле. Дополнительные сведения см. в разделе Добавление файлов в задание.

Чтобы добавить файл в задание, из которого BITS загружает диапазоны данных из файла, вызовите метод IBackgroundCopyJob3::AddFileWithRanges .

Задания отправки могут содержать только один файл. При добавлении второго файла метод возвращает BG_E_TOO_MANY_FILES.

При скачивании BITS гарантирует, что версия файла (в зависимости от размера и даты, а не содержимого) будет согласованной; однако это не гарантирует согласованность набора файлов. Например, если BITS находится в середине загрузки второго из двух файлов в задании во время обновления файлов на сервере, BITS перезапускает скачивание второго файла; однако первый файл больше не скачан.

Обратите внимание, что если вы являетесь владельцем файла, скачиваемого с сервера, необходимо создать новый URL-адрес для каждой новой версии файла. Если вы используете тот же URL-адрес для новых версий файла, некоторые прокси-серверы могут обслуживать устаревшие данные из кэша, так как они не проверяют на исходном сервере, является ли файл устаревшим.

При отправке BITS создает ошибку, если локальный файл изменяется во время передачи файла. Код ошибки BG_E_FILE_CHANGED, а контекст — BG_ERROR_CONTEXT_LOCAL_FILE.

BITS передает файлы в задании последовательно. Если во время передачи файла возникает ошибка, задание переходит в состояние ошибки, и никакие другие файлы в задании не обрабатываются до тех пор, пока ошибка не будет устранена.

По умолчанию пользователь может добавить в задание до 200 файлов. Это ограничение не применяется к администраторам или учетным записям служб. Чтобы изменить значение по умолчанию, задайте групповые политики MaxFilesPerJob .

До Windows Vista: Количество файлов, которые пользователь может добавить в задание, не ограничено.

Сведения о масштабируемости см . в статье Рекомендации по использованию BITS.

Примеры

Пример добавления одного файла в задание см. в разделе Добавление файлов в задание.

Требования

Требование Значение
Минимальная версия клиента Windows XP
Минимальная версия сервера Windows Server 2003
Целевая платформа Windows
Header bits.h
Библиотека Bits.lib
DLL QmgrPrxy.dll

См. также раздел

IBackgroundCopyJob3::AddFileWithRanges

IBackgroundCopyJob::AddFileSet

IBackgroundCopyJob::EnumFiles

IBackgroundCopyJob::GetState

IBackgroundCopyJob::Resume