replaceFileFromAppW 函数 (fileapifromapp.h)

使用创建原始文件备份副本的选项将一个文件替换为另一个文件。 此函数的行为与 ReplaceFile 相同,只不过此函数遵循通用 Windows 平台应用安全模型。

语法

WINSTORAGEAPI BOOL ReplaceFileFromAppW(
  LPCWSTR lpReplacedFileName,
  LPCWSTR lpReplacementFileName,
  LPCWSTR lpBackupFileName,
  DWORD   dwReplaceFlags,
  LPVOID  lpExclude,
  LPVOID  lpReserved
) noexcept;

参数

lpReplacedFileName

有关在不附加“\\?\”的情况下选择退出 MAX_PATH 限制的信息,请参阅 命名文件、路径和命名空间 的“最大路径长度限制”部分以了解详细信息。

使用 GENERIC_READDELETESYNCHRONIZE 访问权限打开此文件。 共享模式FILE_SHARE_READ FILE_SHARE_WRITE | | FILE_SHARE_DELETE

调用方必须对要替换的文件具有写入访问权限。 有关详细信息,请参阅 文件安全和访问权限

lpReplacementFileName

将替换 lpReplacedFileName 文件的文件的名称。

有关在不附加“\\?\”的情况下选择退出 MAX_PATH 限制的信息,请参阅 命名文件、路径和命名空间 的“最大路径长度限制”部分以了解详细信息。

函数尝试使用 SYNCHRONIZEGENERIC_READ、GENERIC_WRITEDELETEWRITE_DAC 访问权限打开此文件,以便可以保留所有属性和 ACL。 如果此操作失败,函数将尝试使用 SYNCHRONIZEGENERIC_READDELETEWRITE_DAC 访问权限打开文件。 未指定共享模式。

lpBackupFileName

将用作 lpReplacedFileName 文件的备份副本的文件的名称。 如果此参数为 NULL,则不创建备份文件。 有关备份文件的实现详细信息,请参阅“备注”部分。

有关在不附加“\\?\”的情况下选择退出 MAX_PATH 限制的信息,请参阅 命名文件、路径和命名空间 的“最大路径长度限制”部分以了解详细信息。

dwReplaceFlags

替换选项。 此参数可使用以下一个或多个值。

含义
REPLACEFILE_WRITE_THROUGH 0x00000001

不支持此值。

REPLACEFILE_IGNORE_MERGE_ERRORS 0x00000002

忽略将信息 ((如属性和 ACL)从替换文件) 合并到替换文件时发生的错误。 因此,如果指定此标志并且没有 WRITE_DAC 访问权限,则函数会成功,但不保留 ACL。

REPLACEFILE_IGNORE_ACL_ERRORS 0x00000004

忽略将替换文件中的 ACL 信息合并到替换文件时发生的错误。 因此,如果指定此标志并且没有 WRITE_DAC 访问权限,则函数会成功,但不保留 ACL。 若要编译使用此值的应用程序,请将 _WIN32_WINNT 宏定义为0x0600或更高版本。

lpExclude

留待将来使用。

lpReserved

留待将来使用。

返回值

如果该函数成功,则返回值为非零值。

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。 下面是此函数的可能错误代码。

返回代码/值 说明
ERROR_UNABLE_TO_MOVE_REPLACEMENT 1176 (0x498)

无法重命名替换文件。 如果指定了 lpBackupFileName ,则替换文件和替换文件将保留其原始文件名。 否则,替换的文件将不再存在,并且替换文件以其原始名称存在。

ERROR_UNABLE_TO_MOVE_REPLACEMENT_2 1177 (0x499)

无法移动替换文件。 替换文件仍以原始名称存在;但是,它已从要替换的文件继承了文件流和属性。 要替换的文件仍然存在,其名称不同。 如果指定 了 lpBackupFileName ,它将是替换文件的名称。

ERROR_UNABLE_TO_REMOVE_REPLACED 1175 (0x497)

无法删除替换的文件。 替换文件和替换文件保留其原始文件名。

 

如果返回任何其他错误(例如 ERROR_INVALID_PARAMETER),替换文件和替换文件将保留其原始文件名。 在这种情况下,备份文件不存在,并且不能保证替换文件继承已替换文件的所有属性和流。

要求

   
最低受支持的客户端 Windows 10 版本 1803
标头 fileapifromapp.h