6、Windows 文件操作:SHFileOperation 函数深度解析

Windows 文件操作:SHFileOperation 函数深度解析

1. SHFileOperation 函数的文件重命名问题

在使用 SHFileOperation 函数进行文件操作时,会遇到一些与文件重命名相关的问题。例如,尝试使用类似 MS - DOS 的语法将 *.txt 重命名为 *.xtt 时,代码如下:

shfo.pFrom = "c:\\demo\\*.txt\0";
shfo.pTo = "c:\\demo\\*.xtt";

执行此操作时,会得到返回码 2,即“文件未找到”的错误信息。实际上, FO_RENAME 命令似乎仅对单个文件重命名有效。

在文件操作中,有一些影响对话框用户界面的标志,不过对于 FO_RENAME 操作,由于其执行速度快,用户界面可能不会显示,以下是仍然有意义的标志:
| 标志 | 值 | 描述 |
| ---- | ---- | ---- |
| FOF_RENAMEONCOLLISION | 0x0008 | 如果目标位置已存在与要重命名的文件同名的文件,该标志指示函数自动将目标名称更改为“Copy of Xxx”,其中 Xxx 是原文件名(不含扩展名)。若不设置此标志,虽不会有提示,但会收到错误消息。 |
| FOF_NOERRORUI | 0x0400 | 若设置此标志,发生的任何错误都不会弹出消息框,只会返回错误代码。 |

2.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值