Windows在特殊文件夹中错误地按文件名复制文件

时间:2012-11-24 03:44:19

标签: windows windows-7 desktop relative-path

如果我将文件从special folder复制到剪贴板,请更改特殊文件夹指向的位置,然后尝试将文件粘贴到此新位置,Windows会抱怨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.mp3C:\Users\BoppreH\Desktop\music 1.mp3

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

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

  5. 的音乐
  6. 尝试在桌面上粘贴music 1.mp3

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

    我知道这是 Doctor的一个例子,当我这样做时很痛,不断改变桌面的位置是非常不寻常的行为,但这是我已经成长的一个功能爱和这个虫子经常咬我。

    此问题是否有解决方法?

1 个答案:

答案 0 :(得分:1)

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

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