SHFileOperationの使い方

解決


komin  2007-04-04 02:56:10  No: 25583

いつもお世話になります。標題のAPIを使って,フォルダごとコピーするツールを作っています。

  with   foStruct   do  begin
    wnd                :=   Handle;
    wFunc              :=   FO_COPY;
    pFrom              :=   PChar(SrcFolder + '\*.*' + #0);
    pTo                :=   PChar(DstFolder + '\' + #0);
    fFlags             :=   FOF_ALLOWUNDO;
    fAnyOperationsAborted   :=   False;
    hNameMappings      :=   nil;
    lpszProgressTitle  :=   nil;
  end;
  SHFileOperation(foStruct);

  と,ここまではいいのですが,二度目以降は上書き確認ダイアログが表示されてしまいます。また,あらかじめ削除しておくことも考えて

  with   foStruct   do  begin
    wnd                :=   Handle;
    wFunc              :=   FO_DELETE;
    pFrom              :=   PChar(DstFolder + '\*.*' + #0);
    fFlags             :=   0;//FOF_ALLOWUNDO;
    fAnyOperationsAborted   :=   true;
    hNameMappings      :=   nil;
    lpszProgressTitle  :=   nil;
  end;
  SHFileOperation(foStruct);

  というの作ったのですが,こちらも削除確認のダイアログが出てしまいます。このツールはタイマーイベントで無人実行したいのですが,問答無用で上書きする方法はないでしょうか?


orz  2007-04-04 03:17:50  No: 25584

これかい?
fFlags := FOF_NOERRORUI;


さどやま  URL  2007-04-04 08:34:21  No: 25585

> 上書き確認ダイアログが表示されてしまいます
    fFlags := fof_NOCONFIRMATION;
> 削除確認のダイアログが出てしまいます
    fFlags := fof_ALLOWUNDO or fof_NOCONFIRMATION;

  詳しくは次を参照してください
(公式)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/structures/shfileopstruct.asp
(日本語)
http://yokohama.cool.ne.jp/chokuto/urawaza/struct/SHFILEOPSTRUCT.html


おや?  2007-04-04 17:11:26  No: 25586

「FOF_ALLOWUNDO」でグーグル検索するだけで、さどやまさん紹介の日本語のほうが、上位にひっかかりますね


komin  2007-04-04 18:09:19  No: 25587

さどやまさんに紹介いただいたサイトで理解できました。ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加