如果我将文件从特殊文件夹复制到剪贴板,更改特殊文件夹指向的位置,然后尝试将文件粘贴到这个新位置,Windows 会抱怨 a Item Not Found error
,似乎试图仅通过文件名复制文件。
我更改特殊文件夹位置的方法是使用这行 C++ 代码:
SHSetKnownFolderPath(FOLDERID_Desktop, 0, NULL, new_location);
并刷新立即查看效果:
SHChangeNotify(0x8000000, 0x1000, NULL, NULL);
重现步骤
桌面指向
C:\Users\BoppreH\Desktop
music 1.mp3
从桌面复制文件(C:\Users\BoppreH\Desktop\music 1.mp3
)将桌面特殊文件夹的位置更改为
D:\music
桌面现在显示来自
D:\music
尝试粘贴
music 1.mp3
到桌面
它失败了Item Not Found
,抱怨它找不到文件D:\music\music 1.mp3
,当文件仍然愉快地坐在C:\Users\BoppreH\Desktop\music 1.mp3
。如果我将文件粘贴到不是桌面的任何其他文件夹中,它工作正常。
我知道这是一个Doctor 的案例,当我这样做时会很痛,并且不断改变桌面的位置是非常不寻常的行为,但这是我已经爱上的一个功能,这个 bug 经常咬我。
这个问题有一些解决方法吗?