Método IBackgroundCopyJob::AddFile (bits.h)
Adiciona um único arquivo ao trabalho.
Sintaxe
HRESULT AddFile(
[in] LPCWSTR RemoteUrl,
[in] LPCWSTR LocalName
);
Parâmetros
[in] RemoteUrl
Cadeia de caracteres terminada em nulo que contém o nome do arquivo no servidor. Para obter informações sobre como especificar o nome remoto, consulte o membro RemoteName e a seção Comentários da estrutura BG_FILE_INFO .
[in] LocalName
Cadeia de caracteres terminada em nulo que contém o nome do arquivo no cliente. Para obter informações sobre como especificar o nome local, consulte o membro LocalName e a seção Comentários da estrutura BG_FILE_INFO .
Retornar valor
Esse método retorna os seguintes valores HRESULT , bem como outros.
Código de retorno | Descrição |
---|---|
|
O arquivo foi adicionado com êxito ao trabalho. |
|
Os trabalhos de upload só podem conter um arquivo; não é possível adicionar outro arquivo ao trabalho. |
|
A configuração de Política de Grupo MaxFilesPerJob determina quantos arquivos um trabalho pode conter. Adicionar o arquivo ao trabalho excede o limite de MaxFilesPerJob. |
|
Você pode receber esse erro por um dos seguintes motivos:
|
|
O usuário não tem permissão para gravar no diretório especificado no cliente. |
Comentários
Para adicionar mais de um arquivo por vez a um trabalho, chame o método IBackgroundCopyJob::AddFileSet . É mais eficiente chamar o método AddFileSet ao adicionar vários arquivos a um trabalho do que chamar o método AddFile em um loop. Para obter mais informações, consulte Adicionando arquivos a um trabalho.
Para adicionar um arquivo a um trabalho do qual o BITS baixa intervalos de dados do arquivo, chame o método IBackgroundCopyJob3::AddFileWithRanges .
Trabalhos de upload só podem conter um arquivo. Se você adicionar um segundo arquivo, o método retornará BG_E_TOO_MANY_FILES.
Para downloads, o BITS garante que a versão de um arquivo (com base no tamanho e na data do arquivo, não no conteúdo) que ele transfere será consistente; no entanto, ele não garante que um conjunto de arquivos será consistente. Por exemplo, se o BITS estiver no meio do download do segundo de dois arquivos no trabalho no momento em que os arquivos são atualizados no servidor, o BITS reiniciará o download do segundo arquivo; no entanto, o primeiro arquivo não é baixado novamente.
Observe que, se você tiver o arquivo que está sendo baixado do servidor, deverá criar uma nova URL para cada nova versão do arquivo. Se você usar a mesma URL para novas versões do arquivo, alguns servidores proxy poderão fornecer dados obsoletos do cache porque não verificam com o servidor original se o arquivo está obsoleto.
Para uploads, o BITS gerará um erro se o arquivo local for alterado enquanto o arquivo estiver sendo transferido. O código de erro é BG_E_FILE_CHANGED e o contexto é BG_ERROR_CONTEXT_LOCAL_FILE.
O BITS transfere os arquivos dentro de um trabalho sequencialmente. Se ocorrer um erro durante a transferência de um arquivo, o trabalho será movido para um estado de erro e nenhum arquivo no trabalho será processado até que o erro seja resolvido.
Por padrão, um usuário pode adicionar até 200 arquivos a um trabalho. Esse limite não se aplica a administradores ou contas de serviço. Para alterar o padrão, defina as políticas de grupo MaxFilesPerJob .
Antes do Windows Vista: Não há limite para o número de arquivos que um usuário pode adicionar a um trabalho.
Para saber mais sobre escalabilidade, confira Práticas recomendadas ao usar BITS.
Exemplos
Para obter um exemplo que adiciona um único arquivo a um trabalho, consulte Adicionando arquivos a um trabalho.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP |
Servidor mínimo com suporte | Windows Server 2003 |
Plataforma de Destino | Windows |
Cabeçalho | bits.h |
Biblioteca | Bits.lib |
DLL | QmgrPrxy.dll |
Confira também
IBackgroundCopyJob3::AddFileWithRanges