Partager via


Méthode IBackgroundCopyJob ::AddFile (bits.h)

Ajoute un seul fichier au travail.

Syntaxe

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

Paramètres

[in] RemoteUrl

Chaîne terminée par null qui contient le nom du fichier sur le serveur. Pour plus d’informations sur la spécification du nom distant, consultez la section Membre RemoteName et Remarques de la structure BG_FILE_INFO .

[in] LocalName

Chaîne terminée par null qui contient le nom du fichier sur le client. Pour plus d’informations sur la spécification du nom local, consultez la section Membre LocalName et Remarques de la structure BG_FILE_INFO .

Valeur retournée

Cette méthode retourne les valeurs HRESULT suivantes, ainsi que d’autres.

Code de retour Description
S_OK
Le fichier a été correctement ajouté au travail.
BG_E_TOO_MANY_FILES
Les travaux de chargement ne peuvent contenir qu’un seul fichier ; vous ne pouvez pas ajouter un autre fichier au travail.
BG_E_TOO_MANY_FILES_IN_JOB
Le paramètre maxFilesPerJob stratégie de groupe détermine le nombre de fichiers qu’un travail peut contenir. L’ajout du fichier au travail dépasse la limite MaxFilesPerJob.
E_INVALIDARG
Vous pouvez recevoir cette erreur pour l’une des raisons suivantes :
  • Le nom de fichier local ou distant n’est pas valide.
  • Le nom de fichier distant utilise un protocole non pris en charge.
  • Le nom de fichier local a été spécifié à l’aide d’un chemin relatif.
E_ACCESSDENIED
L’utilisateur n’a pas l’autorisation d’écrire dans le répertoire spécifié sur le client.

Remarques

Pour ajouter plusieurs fichiers à la fois à un travail, appelez la méthode IBackgroundCopyJob ::AddFileSet . Il est plus efficace d’appeler la méthode AddFileSet lors de l’ajout de plusieurs fichiers à un travail que d’appeler la méthode AddFile dans une boucle. Pour plus d’informations, consultez Ajout de fichiers à un travail.

Pour ajouter un fichier à un travail à partir duquel BITS télécharge des plages de données à partir du fichier, appelez la méthode IBackgroundCopyJob3 ::AddFileWithRanges .

Les travaux de chargement ne peuvent contenir qu’un seul fichier. Si vous ajoutez un deuxième fichier, la méthode retourne BG_E_TOO_MANY_FILES.

Pour les téléchargements, BITS garantit que la version d’un fichier (en fonction de la taille et de la date du fichier, et non du contenu) qu’il transfère sera cohérente ; toutefois, cela ne garantit pas la cohérence d’un ensemble de fichiers. Par exemple, si BITS est en train de télécharger le deuxième des deux fichiers du travail au moment où les fichiers sont mis à jour sur le serveur, BITS redémarre le téléchargement du deuxième fichier ; toutefois, le premier fichier n’est pas téléchargé à nouveau.

Notez que si vous êtes propriétaire du fichier téléchargé à partir du serveur, vous devez créer une URL pour chaque nouvelle version du fichier. Si vous utilisez la même URL pour les nouvelles versions du fichier, certains serveurs proxy peuvent servir des données obsolètes à partir de leur cache, car ils ne vérifient pas auprès du serveur d’origine si le fichier est obsolète.

Pour les chargements, BITS génère une erreur si le fichier local change pendant le transfert du fichier. Le code d’erreur est BG_E_FILE_CHANGED et le contexte est BG_ERROR_CONTEXT_LOCAL_FILE.

BITS transfère les fichiers au sein d’un travail de manière séquentielle. Si une erreur se produit lors du transfert d’un fichier, le travail passe à un état d’erreur et aucun autre fichier au sein du travail n’est traité tant que l’erreur n’est pas résolue.

Par défaut, un utilisateur peut ajouter jusqu’à 200 fichiers à un travail. Cette limite ne s’applique pas aux administrateurs ou aux comptes de service. Pour modifier la valeur par défaut, définissez les stratégies de groupe MaxFilesPerJob .

Avant Windows Vista : Il n’existe aucune limite quant au nombre de fichiers qu’un utilisateur peut ajouter à un travail.

Pour connaître les problèmes de scalabilité, consultez Meilleures pratiques lors de l’utilisation de BITS.

Exemples

Pour obtenir un exemple qui ajoute un seul fichier à un travail, consultez Ajout de fichiers à un travail.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP
Serveur minimal pris en charge Windows Server 2003
Plateforme cible Windows
En-tête bits.h
Bibliothèque Bits.lib
DLL QmgrPrxy.dll

Voir aussi

IBackgroundCopyJob3 ::AddFileWithRanges

IBackgroundCopyJob ::AddFileSet

IBackgroundCopyJob ::EnumFiles

IBackgroundCopyJob ::GetState

IBackgroundCopyJob ::Resume