プロが教える店舗&オフィスのセキュリティ対策術

ダイアログベースにて、フォルダがドラッグアンドドロップされたら、フォルダの中のファイルのパスを一個ずつ取得したいのですが、どのようにしたらいいでしょうか。

void CDDDlg::OnDropFiles(HDROP hDropInfo)
{
char FileName[100];
int NameSize = sizeof(FileName);
int FileNumber; CString str;
int i;

FileNumber = DragQueryFile(hDropInfo, 0xffffffff, FileName, NameSize);
str.Format("ドロップされたファイルの数 =%d", FileNumber);
AfxMessageBox(str);

for(i=0; i<FileNumber; i++){
DragQueryFile(hDropInfo, i, FileName, NameSize);
str.Format("第 %d 番目のファイル名 = %s", i, FileName);
AfxMessageBox(str);
}
CDialog::OnDropFiles(hDropInfo);
}

のようにすると、フォルダのパスが出力されます。
例えば、testというフォルダの中にtest.txtがあり、testをドラッグアンドドロップしたら、test.txtのパスを取得したのですが・・・。
Visual Studio .NET2003を使用しており、まだ初心者ですがよろしくお願いします。

A 回答 (1件)

MSDNの CFileFind::IsDirectory にある使用例が参考になります。



http://msdn2.microsoft.com/ja-jp/library/scx9985 …

要は自分で再帰的に展開すればいいのです。
頑張ってみてくださいね。
    • good
    • 0
この回答へのお礼

ありがとうございます。FindFirstFileやFindNextFileを使うことによりできました。
とても参考になりました。本当にありがとうございました。

お礼日時:2007/11/25 17:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!