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 | 若设置此标志,发生的任何错误都不会弹出消息框,只会返回错误代码。 |
超级会员免费看
订阅专栏 解锁全文

1447

被折叠的 条评论
为什么被折叠?



