RemoveDirectoryTransactedA 函数 (winbase.h)

[Microsoft强烈建议开发人员利用替代方法来实现应用程序的需求。 TxF 开发的许多方案可以通过更简单、更易用的技术来实现。 此外,TxF 在 Microsoft Windows 的未来版本中可能不可用。 有关详细信息,以及 TxF 的替代项,请参阅 使用事务 NTFS的替代项。]

将现有空目录作为事务处理操作删除。

语法

BOOL RemoveDirectoryTransactedA(
  [in] LPCSTR lpPathName,
  [in] HANDLE hTransaction
);

参数

[in] lpPathName

要删除的目录的路径。 路径必须指定一个空目录,调用过程必须具有对目录的删除访问权限。

默认情况下,名称限制为MAX_PATH个字符。 若要将此限制扩展到 32,767 宽字符,请将“\\?\”前面追加到路径。 有关详细信息,请参阅 命名文件、路径和命名空间

提示

从 Windows 10 版本 1607 开始,你可以选择加入以删除MAX_PATH限制,而无需追加“\\?\”。 有关详细信息,请参阅 命名文件、路径和命名空间 的“最大路径长度限制”部分。

目录必须驻留在本地计算机上;否则,函数将失败,最后一个错误代码设置为 ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE

[in] hTransaction

事务的句柄。 此句柄由 CreateTransaction 函数返回。

返回值

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

如果函数失败,则返回值为零。 若要获取扩展的错误信息,请调用 GetLastError

言论

RemoveDirectoryTransacted 函数在关闭时标记要删除的目录。 因此,在关闭目录的最后一个句柄之前,不会删除该目录。

RemoveDirectory 删除目录交接点,即使目标的内容不为空;无论目标对象的状态如何,该函数都会删除目录交接点。

在 Windows 8 和 Windows Server 2012 中,以下技术支持此函数。

科技 支持
服务器消息块 (SMB) 3.0 协议
SMB 3.0 透明故障转移 (TFO)
具有横向扩展文件共享的 SMB 3.0 (SO)
群集共享卷文件系统 (CsvFS)
可复原文件系统 (ReFS)
 

SMB 3.0 不支持 TxF。

注意

winbase.h 标头将 RemoveDirectoryTransacted 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows Vista [仅限桌面应用]
支持的最低服务器 Windows Server 2008 [仅限桌面应用]
目标平台 窗户
标头 winbase.h (包括 Windows.h)
Kernel32.lib
DLL Kernel32.dll

另请参阅

CreateDirectoryTransacted

创建和删除目录

目录管理功能

事务性 NTFS