0

特別なフォルダからクリップボードにファイルをコピーし、特別なフォルダが指す場所を変更して、ファイルをこの新しい場所に貼り付けようとすると、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.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.mp3C:\Users\BoppreH\Desktop\music 1.mp3

これはDoctorの場合であり、これを行うと痛くなります。デスクトップの場所を絶えず変更することは非常に珍しい動作ですが、これは私が大好きになった機能であり、このバグは常に私を悩ませます。

この問題の回避策はありますか?

4

1 に答える 1

1

ある種のfolder watcherコントロールを使用して、特別なフォルダの場所が変更されたことを検出し、古い場所を参照するファイルパスがないかクリップボードをチェックして更新します。

または、ファイルをコピーする前に、スペシャルの場所を変更してください。

于 2012-11-24T03:55:30.783 に答える