SHFileOperation関数でコピープログラムを作成しています。
オプション fFlags:= FOF_RENAMEONCOLLISION or FOF_NOCONFIRMMKDIR;
次のようなダイアログが出てコピーがストップしますが、
意味がわからず対処できません。
「006をコピーできません。このコマンドを実行するのに十分な
クォータがありません。」(6とはファイル名です)
これは、何の意味なのでしょうか、対処法のご指導をお願いいたします。
その時の環境、状態。
WindowsXP Delphi Personal6でコンパイル。
メモリー512MB、ゴミ箱に800個のオブジェクトがあります。
コピーファイル数4000個くらい。
タスクバーで見たPF使用量350MB、
全部閉じて、ゴミ箱を空にして、再度実行するとOKです。
ときどき発生します。同じファイルでコメントが出るわけではないです。
よろしくお願いします。
以下は参考にはならないでしょうか?
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?forum=7&topic=25715
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1989039
deldelさん。ありがとうございます。
同じような人がいるんですね。
「FOF_WANTMAPPINGHANDLEを使う場合は、
このハンドルが不要になったら SHFreeNameMappings 関数で解放しなくてはなりません。」と書いてありますが、これは使っていないし。
しかし念のためSHFreeNameMappings 関数で解放してみようかと思いましたが、そのような例が見つけられず、そのためコードが判らず実験出来ませんでした。
ShellAPI系になるとPersonalにはヘルプもなくさっぱり判りませんでした。
引き続き研究してみます。
ありがとうございました。
自己レスです。
その後試行錯誤しましたが、ほぼ原因がわかりましたのでご報告します。
ShfOperation関数を使ってバックアッププログラムを作成しているのですが、
このエラーで止まるので不安になったのですが、
(1)友人にもらった外付けのHDDに大量にコピーするとき発生する
様な気がしてきました。内蔵HDD間では発生したことがない。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1989039
ここで、はっと思い当たったためセーフモードでスキャンディスクをしたら、
50GB、58万ファイルのバックアップでも発生しなくなりました。
たぶんこれだろうと思っています。
ありがとうございました。
ツイート | ![]() |