Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Remplace un fichier par un autre fichier, par l’option de création d’une copie de sauvegarde du fichier d’origine. Le comportement de cette fonction est identique à ReplaceFile, sauf que cette fonction respecte le modèle de sécurité des applications de plateforme Windows universelle.
Syntaxe
WINSTORAGEAPI BOOL ReplaceFileFromAppW(
LPCWSTR lpReplacedFileName,
LPCWSTR lpReplacementFileName,
LPCWSTR lpBackupFileName,
DWORD dwReplaceFlags,
LPVOID lpExclude,
LPVOID lpReserved
) noexcept;
Paramètres
lpReplacedFileName
Pour plus d’informations sur la désactivation de la limitation de MAX_PATH sans précéder « \\ ?\ », consultez la section « Limite maximale de longueur du chemin d’accès » de Naming Files, Path et Namespaces pour plus d’informations.
Ce fichier est ouvert avec les droits d’accès GENERIC_READ, DELETE et SYNCHRONIZE . Le mode de partage est FILE_SHARE_READ | FILE_SHARE_WRITE FILE_SHARE_DELETE | .
L’appelant doit avoir un accès en écriture au fichier à remplacer. Pour plus d’informations, consultez Sécurité des fichiers et droits d’accès.
lpReplacementFileName
Nom du fichier qui remplacera le fichier lpReplacedFileName .
Pour plus d’informations sur la désactivation de la limitation de MAX_PATH sans précéder « \\ ?\ », consultez la section « Limite maximale de longueur du chemin d’accès » de Naming Files, Path et Namespaces pour plus d’informations.
La fonction tente d’ouvrir ce fichier avec les droits d’accès SYNCHRON, GENERIC_READ, GENERIC_WRITE, DELETE et WRITE_DAC afin qu’il puisse conserver tous les attributs et listes de contrôle d’accès. Si cela échoue, la fonction tente d’ouvrir le fichier avec le fichier SYNCHRONIZE, GENERIC_READ, DELETE et WRITE_DAC droits d’accès. Aucun mode de partage n’est spécifié.
lpBackupFileName
Nom du fichier qui servira de copie de sauvegarde du fichier lpReplacedFileName . Si ce paramètre a la valeur NULL, aucun fichier de sauvegarde n’est créé. Consultez la section Remarques pour plus d’informations sur l’implémentation sur le fichier de sauvegarde.
Pour plus d’informations sur la désactivation de la limitation de MAX_PATH sans précéder « \\ ?\ », consultez la section « Limite maximale de longueur du chemin d’accès » de Naming Files, Path et Namespaces pour plus d’informations.
dwReplaceFlags
Options de remplacement. Ce paramètre peut être une ou plusieurs des valeurs suivantes.
| Valeur | Meaning |
|---|---|
| 0x00000001 REPLACEFILE_WRITE_THROUGH | Cette valeur n’est pas prise en charge. |
| REPLACEFILE_IGNORE_MERGE_ERRORS 0x00000002 | Ignore les erreurs qui se produisent lors de la fusion d’informations (telles que les attributs et les listes de contrôle d’accès) du fichier remplacé au fichier de remplacement. Par conséquent, si vous spécifiez cet indicateur et que vous n’avez pas d’accès WRITE_DAC , la fonction réussit, mais les listes de contrôle d’accès ne sont pas conservées. |
| REPLACEFILE_IGNORE_ACL_ERRORS 0x00000004 | Ignore les erreurs qui se produisent lors de la fusion des informations de liste de contrôle d’accès du fichier remplacé au fichier de remplacement. Par conséquent, si vous spécifiez cet indicateur et que vous n’avez pas d’accès WRITE_DAC , la fonction réussit, mais les listes de contrôle d’accès ne sont pas conservées. Pour compiler une application qui utilise cette valeur, définissez la macro _WIN32_WINNT comme 0x0600 ou version ultérieure. |
lpExclude
Réservé pour une utilisation ultérieure.
lpReserved
Réservé pour une utilisation ultérieure.
Valeur retournée
Si la fonction réussit, la valeur de retour est différente de zéro.
Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations d’erreur étendues, appelez GetLastError. Voici les codes d’erreur possibles pour cette fonction.
| Retourner le code/la valeur | Descriptif |
|---|---|
| ERROR_UNABLE_TO_MOVE_REPLACEMENT 1176 (0x498) | Impossible de renommer le fichier de remplacement. Si lpBackupFileName a été spécifié, les fichiers remplacés et de remplacement conservent leurs noms de fichiers d’origine. Sinon, le fichier remplacé n’existe plus et le fichier de remplacement existe sous son nom d’origine. |
| ERROR_UNABLE_TO_MOVE_REPLACEMENT_2 1177 (0x499) | Impossible de déplacer le fichier de remplacement. Le fichier de remplacement existe toujours sous son nom d’origine ; toutefois, il a hérité les flux de fichiers et les attributs du fichier qu’il remplace. Le fichier à remplacer existe toujours avec un autre nom. Si lpBackupFileName est spécifié, il s’agit du nom du fichier remplacé. |
| ERROR_UNABLE_TO_REMOVE_REPLACED 1175 (0x497) | Impossible de supprimer le fichier remplacé. Les fichiers remplacés et de remplacement conservent leurs noms de fichiers d’origine. |
Si une autre erreur est retournée, telle que ERROR_INVALID_PARAMETER, les fichiers remplacés et de remplacement conservent leurs noms de fichiers d’origine. Dans ce scénario, un fichier de sauvegarde n’existe pas et il n’est pas garanti que le fichier de remplacement ait hérité tous les attributs et flux du fichier remplacé.
Spécifications
| Requirement | Valeur |
|---|---|
| Client minimum requis | Windows 10, version 1803 |
| Header | fileapifromapp.h |
| Library | OneCore.Lib |