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_READ、 DELETE 和 SYNCHRONIZE 访问权限打开此文件。 共享模式FILE_SHARE_READ FILE_SHARE_WRITE | | FILE_SHARE_DELETE。
调用方必须对要替换的文件具有写入访问权限。 有关详细信息,请参阅 文件安全和访问权限。
lpReplacementFileName
将替换 lpReplacedFileName 文件的文件的名称。
有关在不附加“\\?\”的情况下选择退出 MAX_PATH 限制的信息,请参阅 命名文件、路径和命名空间 的“最大路径长度限制”部分以了解详细信息。
函数尝试使用 SYNCHRONIZE、GENERIC_READ、GENERIC_WRITE、DELETE 和 WRITE_DAC 访问权限打开此文件,以便可以保留所有属性和 ACL。 如果此操作失败,函数将尝试使用 SYNCHRONIZE、 GENERIC_READ、 DELETE 和 WRITE_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 |