捐助郴维网
感谢您对郴维网的支持,你的支持将是郴维网持续发展的动力!
二维码
×
当前位置:郴维网 >API档案 > 正文
5 2017.06

DeleteFileTransacted

点击次数:1278 更新时间:2017-6-5 20:02:19  【打印此页

原文链接 -> 传送门

函数功能:

【微软强烈建议开发者使用可替代的方法去实现你的应用的需求。很多情况下,TxF 的开发可以通过更简单并且更快捷的可用的技术实现。而且,TxF 在将来微软的 Windows 系统的版本中可能将不可用。更多信息,和替代 TxF,请参照 Alternatives to using Transactional NTFS。】

DeleteFileTransacted 函数用于删除一个现存文件(作为事务处理操作)。


API 函数原型:

注释:_In_ 说明该参数是输入的。

BOOL WINAPI DeleteFileTransacted(
  _In_ LPCTSTR lpFileName,
  _In_ HANDLE  hTransaction
);


参数解析:

参数

含义

lpFileName

1. 该参数表示将被删除的文件名字

2. 在该函数的 ANSI 版本中,名字长度仅限于 MAX_PATH 个字符。可以调用该函数的 Unicode 版本将该限制扩展到 32767 宽度的字符,并在路径上预先添加 "\\?\"。更多信息,请参照 Naming a File

3. 该文件必须位于本地电脑;否则,该函数将运行失败并且最终的错误代码被置为 ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE

hTransaction

1. 该参数表示一个事务处理的句柄

2. 该句柄由 CreateTransaction 函数返回



返回值:

1. 如果函数运行成功,则返回值为非 0;

2. 如果函数运行失败,则返回值为 0。

想要调用更多的错误信息,请调用 GetLastError 函数。


备注:

1. 如果一个应用程序试图删除一个不存在的文件,那么 DeleteFileTransacted 函数将以带有 ERROR_FILE_NOT_FOUND 的方式运行失败。如果该文件是一个只读文件,那么该函数将以带有 ERROR_ACCESS_DENIED 的方式运行失败。

2. 下面的列表列出了删除、移除或关闭文件的一些技巧:

  • 想要删除一个只读文件,首先你必须移除只读属性
  • 想要删除或者重命名一个文件,您必须拥有删除该文件的权限,或在父目录中的删除子权限的任何一个
  • 想要递归删除目录中的文件,可使用 SHFileOperation 函数
  • 想要移除一个空目录,可使用 RemoveDirectoryTransacte 函数
  • 想要关闭一个打开的文件,可以使用 CloseHandle 函数


3. 如果你建立了一个目录,该目录带有除了删除和删除子文件的全部访问权限,并且新文件的访问控制列表是继承于该目录,那么你能创建一个文件,并且不能够删除它。但是,你能够创建一个文件,并且获得你在创建一个新文件时返回给你的句柄上所需要全部访问权限。

4. 如果你在创建一个文件时需要删除权限,你能使用该句柄删除或者重命名该文件,但是不要使用任何其它的句柄。更多信息,请参照 File Security and Access Rights

5. 如果一个应用试图删除一个为了正常的I/O有其它句柄打开或者是存储映像的文件DeleteFileTransacted函数会运行失败(当其它的句柄被打开时,FILE_SHARE_DELETE必须被指明)。

6. DeleteFileTransacted 函数标记一个在关闭时被删除的文件。如果事务依然活跃,当该文件的最后的事务处理书写器句柄被关闭时该文件被删除。如果一个文件有删除标记,并且一个事务处理书写器句柄在该事务完成之后依然打开,那么该文件不会被删除。

7. 符号链接:如果路径指向一个符号链接,则符号连接被删除,而不是目标被删除。想要删除目标,你必须调用 CreateFile 函数并且指定 FILE_FLAG_DELETE_ON_CLOSE。

8. 在 Windows 8 和 Windows Server 2012 中,该函数由以下技术支持:

技术

是否被支持

Server Message Block (SMB) 3.0 protocol

SMB 3.0 Transparent Failover (TFO)

SMB 3.0 with Scale-out File Shares (SO)

Cluster Shared Volume File System (CsvFS)

Resilient File System (ReFS)


SMB 3.0 不支持TxF。

需求:

Minimum supported client

Windows Vista [桌面应用程序]

Minimum supported server

Windows 2008 服务器版 [桌面应用程序]

Minimum supported phone

Windows Phone 8

Header

WinBase.h (包含于 Windows.h)

Library

Kernel32.lib

DLL

Kernel32.dll

Unicode and ANSI names

DeleteFileTransactedW (Unicode) 和 DeleteFileTransactedA (ANSI)


 

提示
郴维网为您提供各类专业服务:
软件开发,电脑配件销售,WIFI路由器销售,上门电脑维修,上门安装系统,系统安装,软、硬件安装,电脑除尘清灰,显示器维修,WIFI安装调试,服务器维护,数据恢复,密码破解,网络布线,网络检修,打印机维修,打印机加碳粉,苹果电脑安装系统,苹果电脑安装双系统,监控安装维护,电脑外包,笔记本电脑维修,餐饮、美容行业软件安装 等。。。。。。
点击次数:1278 更新时间:2017-6-5 20:02:19  【打印此页

上一条:SetClassLongPtr

下一条:AttachThreadInput

关键词推荐:郴州电脑城 郴州电脑维修公司 维修电脑公司 郴州软件开发 上门电脑维修 上门安装系统 笔记本电脑维修 郴州打印机维修 打印机加碳粉 电脑安装双系统 苹果电脑双系统 液晶显示器维修 联想笔记本维修 联想笔记本维修电话 戴尔笔记本维修电话 郴州戴尔笔记本维修 戴尔笔记本郴州维修点 华硕笔记本维修点 郴州华硕笔记本维修 郴州笔记本上网维修