0

如果我将文件从特殊文件夹复制到剪贴板,更改特殊文件夹指向的位置,然后尝试将文件粘贴到这个新位置,Windows 会抱怨 a Item Not Found error,似乎试图仅通过文件名复制文件。

我更改特殊文件夹位置的方法是使用这行 C++ 代码:

SHSetKnownFolderPath(FOLDERID_Desktop, 0, NULL, new_location);

并刷新立即查看效果:

SHChangeNotify(0x8000000, 0x1000, NULL, NULL);

重现步骤

  1. 桌面指向C:\Users\BoppreH\Desktop

  2. music 1.mp3从桌面复制文件( C:\Users\BoppreH\Desktop\music 1.mp3)

  3. 将桌面特殊文件夹的位置更改为D:\music

  4. 桌面现在显示来自D:\music

  5. 尝试粘贴music 1.mp3到桌面

它失败了Item Not Found,抱怨它找不到文件D:\music\music 1.mp3,当文件仍然愉快地坐在C:\Users\BoppreH\Desktop\music 1.mp3。如果我将文件粘贴到不是桌面的任何其他文件夹中,它工作正常。

我知道这是一个Doctor 的案例,当我这样做时会很痛,并且不断改变桌面的位置是非常不寻常的行为,但这是我已经爱上的一个功能,这个 bug 经常咬我。

这个问题有一些解决方法吗?

4

1 回答 1

1

使用某种类型的folder watcher控件来检测特殊文件夹位置何时更改,并检查剪贴板中是否存在引用旧位置的任何文件路径并更新它们。

或者在复制文件之前更改特价商品的位置。

于 2012-11-24T03:55:30.783 回答