DOBON.NET DOBON.NETプログラミング掲示板過去ログ

MoveDirectoryで進行状況ダイアログを表示させつつ同名ファイルを強制上書きさせたい

環境/言語:[Windows7 32bit C# .NetFrameWork4.0]
分類:[.NET]

初めまして。
検索をかけてもヒットしなかったためこちらで失礼します。

VisualBasic名前空間のMoveDirectoryについて質問です。

MoveDirectoryでフォルダをサブフォルダごとまとめて別の場所に移動させようと考えているのですが、ファイル数が多い為、進行状況ダイアログを表示させようとしています。
そこで第三引数のUIOptionでAllDialogsを設定することにより進行状況ダイアログの表示はできました。
ですが、移動先に同じ名前のファイルがあった場合に上書きの是非を問うダイアログまで表示されてしまいます。(目的の動きとしては移動先に同名ファイルがあった場合必ず上書きをします)
こちらの上書き確認ダイアログを表示させずに進行状況ダイアログを表示させることは可能なのでしょうか?
オーバーロードで強制上書きとUIOptionが一緒になったものがないため困っております。

よろしくお願いします。


【環境】
VisualStudio2010
C#
.Net FrameWork4.0
Shell32を使えばどうでしょう。
http://www.happy2-island.com/vbs/cafe02/capter00304.shtml
C#からは、
・参照の追加でCOMのMicrosoft Shell Controls And Automationを参照すれば、new Shell32.Shell()からアーリーバインドで使用できます。
・Type.GetTypeFromProgID("Shell.Application")をActivator.CreateInstanceすれば、dynamicを使ったレイトバインドで使用できます。
Hongliang様、早速のご回答ありがとうございます。
URLを確認させていただいたところ、まさしく自分の求めていた

・進行状況ダイアログの表示
・上書き確認ダイアログの非表示(全て上書き)

の両立ができるとのことで大変助かりました。

ただ当方Shell32というものを使ったことがなく、Hongliang様のおっしゃるバインドも勉強不足のため、軽く調べてみたのですがいまいちピンとこず、導入に行き詰っております。
現在教えて頂いたアーリーバインドの方を試しており、

・COMからの参照の追加
・new Shell32.Shell(); のプログラム中への記述

以上を行っている状態です。
この状態で教えて頂いたURLを参考にインテリセンスを用いてC#の記述に書き換えようとしてるのですが、インテリセンスにCopyHere、MoveHereが表示されません。
重ねての質問で大変恐縮なのですが、Shell32を用いる上で、何が足りないのか教えて頂けると嬉しいです。
重ねての投稿申し訳ありません。

http://d.hatena.ne.jp/fezg00/20111113/1321150653

を参考に導入ができました。


学習不足を反省し、これからも精進したいと思います。

Shell32の情報を教えてくださったHongliang様本当にありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板