none
デジカメやスマホのファイルを複数選択したい RRS feed

  • 質問

  • ファイルダイアログ(CFileDialog)を使い、OFN_ALLOWMULTISELECTを有効にして、
    複数のファイル(主に画像ファイル)を同時に取り込む自作アプリがあります。
    取り込んだファイルは自身の管理するフォルダにコピーされます。

    通常のドライブ内の場所に対してはこれで問題なく動くのですが、
    デジカメやスマホを接続した際に「PC」の下に出てくるデバイスの中の
    フォルダに対して、複数のファイルを選択してOKを押すと、
    「この場所から複数の項目を開けません。1つの項目を選択してください。」
    というエラーが表示されてしまいます。

    ちなみに、ファイルを一つだけ選択してOKを押すと、
    AppData\Local\Microsoft\Windows\INetCache\IE\...の下にコピーされて、
    ここのファイルのパスが返ってくるようです。

    これはOSレベルの制限ということになりますでしょうか。

    もしそうだとすると、このようなデバイス内のファイルを、
    ファイルダイアログのようにアイコンやプレビュー画像の表示ができて、
    複数のファイルとして同時に取り込めるようにするには、
    どのようなアプローチが考えられますでしょうか。

    2022年1月14日 5:42

すべての返信

  • このメッセージは、一覧されているファイル、または複数選択された個々のファイルの所属するフォルダが同一でない場合に表示されるようです。
    なぜ別フォルダのファイルが一覧されるのかは分かりませんけど、何かの役に立てば良いのですが。


    2022年1月14日 8:37
  • デジカメなどのストレージはドライブレター(いわゆる C: など)がついていませんよね?

    そういう特殊なフォルダーから参照した場合、通常の物理パス前提のアプリで扱えないので、AppData などにコピーしてから返す形で OpenFileName が頑張ってくれているのでしょう。
    その頑張りの制限として、1ファイル前提なのだと思います。

    Vista 以上で推奨されている IFileOpenDialog を使ってもでもダメなら無理ということだと思います。

    2022年1月14日 12:30
    モデレータ