●●为什么?为什么?关于文件夹●●

ANSARS 2004-02-20 07:57:21
有个文件夹C:\test\old\,有个子文件夹,如:C:\test\old\ttt。
我想将文件夹名old改为new,如果文件夹打开的话,我先关闭它,然后再rename

第一种情况:当打开C:\test\old\,未进入它的子文件夹,以下程序执行成功。

HWND hWnd=::FindWindow(NULL, "old");
if(hWnd)::PostMessage(hWnd,WM_CLOSE,0,0);
hWnd=::FindWindow(NULL, "old"); //关闭文件夹“old”
if(hWnd)::PostMessage(hWnd,WM_CLOSE,0,0);

if(RenameFile("c:\\test\\old", "c:\\test\\new"))
ShowMessage("修改文件夹名成功!");
else ShowMessage("无法修改文件夹名!");



第二种情况:当进入它的子文件夹C:\test\old\ttt\,以下程序无法修改文件夹名。

HWND hWnd=::FindWindow(NULL, "ttt");
if(hWnd)::PostMessage(hWnd,WM_CLOSE,0,0);
hWnd=::FindWindow(NULL, "ttt"); //关闭文件夹“ttt”,这里是成功的

if(hWnd)::PostMessage(hWnd,WM_CLOSE,0,0);

if(RenameFile("c:\\test\\old", "c:\\test\\new"))
ShowMessage("修改文件夹名成功!");
else ShowMessage("无法修改文件夹名!");

----------------------------------------------
以上两种情况都关闭了文件夹,但第二种无法修改文件夹名。

为什么?

...全文
43 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复

13,874

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧