2010-11-30 31 views
1

OpenFileDialogを使用して複数のファイルを選択することができます。 (マルチセレクトをtrueに設定)複数選択のフォルダとファイル

複数のファイルとフォルダを同時に選択する方法は?

私はFolderBrowseDialogが何であるか知っています。私はCtrlキーまたはShiftキーを押したままにしておく必要があります。 :D

フォルダが5つのフォルダと2つのファイルを含んでいると仮定すると、シナリオはファイルとフォルダの例1を選択することです。

私は人々がなぜこの質問に投票するのか分からない!!

-----------------編集--------------------

仮定OpenFileDialogでは、あなたはフォルダ内の任意の数のファイルを選択することができます。 私はこのようなものを望んでいますが、フォルダを選択する機能もあります! OpenFileDialogは、FileNames配列内の選択されたファイル名を返します。ダイアログは、ファイル名とフォルダパスを含むSelectedPaths配列と同様のものを返します。

+0

このようなUIがどのように見えると想像しますか?ユーザがフォルダXからファイルA、B、Cを選択し、次にフォルダYからファイルDを選択することを許可されなければならない場合、フォルダZ?このような機能のためには、おそらく自分自身をロールバックする必要があります。 – Pedery

+0

フォルダに5つのフォルダと2つのファイルが含まれていると仮定します。シナリオでは、ファイル1とフォルダ2を選択します。 –

+0

@HPT:これは、単一のフォルダが選択されたときに何をすべきか、いくつかのあいまいさを引き起こし、ユーザーが[OK]を押します。フォルダを入力するか、選択として受け入れますか? (いくつかの新しい - カスタム - ?。ダイアログが後者を選ぶ、とだけフォルダに移動するためのダブルクリックを許可ShBrowseForFolderダイアログよりもより使いやすく、しかし私は、マウスへの依存と多く完全に満足している) – peterchen

答えて

1

Common Item Dialog(ファイル名を開く共通のダイアログボックスを置き換えます)には、カスタマイズのポイントがいくつかあります。私は試していませんが、フックすることでIFileDialogEventsあなたは必要に応じて行動を変えることができるはずです。 (あなたはそれがXPスタイルのファイルダイアログでOFNHookProcで可能であった、いくつかの策略を追加する必要があるかもしれません)


これはイライラするMicrosoftのドキュメントをたくさん読むことを意味していますが、これは、カスタムダイアログを開発オーバーpreferrableです:

プラットフォーム機能をコピーするときには、そのすべてをコピーする必要があります。

Ctrl + V、Shift + Ins、またはコンテキストメニューを使ってファイルを貼り付ける。もし私が書いたシェル拡張がうまくいけば、うんざりする。

+0

私はそれを読んで、それは私の要件を満たすように思われる、今質問はどのように私はCでそれらを使用することができます#ですか?そこにあるすべてのサンプルはC++で書かれています。 –

+0

クイックグーグルは大したことではありませんが、これは最高です:http://stackoverflow.com/questions/4136477/trying-to-open-a-file-dialog-using-the-new-ifiledialog-and- ifileopendialog-interf。 prodded時にkoders.comがもっと上がるかもしれません。 – peterchen

1

私は構築したアプリケーションでこれを行いました。ツリービューコントロールを使用し、ハードドライブをこのコントロールにマッピングしました。各フォルダにはTreeNodeがあり、フォルダ構造と一致するようにネストされています。最も深いレベルで

ユーザーはメモリが不足していますが、個々のファイルを選択/選択解除することができます。誰かが親フォルダをチェックすると、すべての子供を自動的に選択/選択解除できます。

+0

私は自分自身でそれを書いて実装することを意味しますか? –

+1

@HPT:なぜそうは見えないのですか?コードを書くように頼んでいるのであれば、そのサイトで多くの助けを得ることはできません。ここの人々はあなたを正しい方向に向けるのがうれしいですが、開発するアプリケーションであり、人々は行っていませんあなたのためにそれを書いてください。このようなことを実装する前にもっと詳細が必要な場合は、私の提案のどの部分が混乱しているかを教えてください。私はそれを明確にします。 – SqlRyan

+0

私はそれを書く方法を知っているので、あなたがそれを行うことができないという意味ではない、おそらくそれは前にやったことや簡単な方法ではないが、あなたはそれを認識していない。 –