如果我将文件从special folder复制到剪贴板,请更改特殊文件夹指向的位置,然后尝试将文件粘贴到此新位置,Windows会抱怨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的一个例子,当我这样做时很痛,不断改变桌面的位置是非常不寻常的行为,但这是我已经成长的一个功能爱和这个虫子经常咬我。
此问题是否有解决方法?
答案 0 :(得分:1)
使用某种类型的folder watcher
控件来检测特殊文件夹位置的更改时间,并检查剪贴板中是否有任何引用旧位置的文件路径并更新它们。
或者在复制文件之前更改特价商品的位置。