for(p=0;p<=c;p++){//ドロップしたファイルがディレクトリの場合 CFileFind find; CString vv; vv=__argv[p]; CString Newstr=vv+_T("\\*.*"); if(find.FindFile(Newstr)){ int i=1; while(i){ if(__argv[p]==""){ return 0; } i=find.FindNextFile(); if(find.IsDots()){ continue; } if(find.IsDirectory()){ FolderDrop(find.GetFilePath()); } CString filename=vv+"\\"+find.GetFileName(); CString kakucho=GetKaku(filename); while((index3=m_listC.GetNextItem(index3,LVNI_ALL))!=-1){ indexstr=m_listC.GetItemText(index3,0); if(kakucho==indexstr){ kdlg.m_DirectoryFileNameArray.Add(filename); } } m_FilenameArray.Add(filename); m_FolderFileNumber++; } find.Close(); } } void CDragDrop6Dlg::FolderDrop(CString str) { int c=__argc; CString kakucho; int i=m_listC.GetItemCount(); CString indexstr; CString filename; CKakuninDlg kdlg; int p; int index3=-1; for(p=0;p<=c;p++){//ドロップしたファイルがディレクトリの場合 CFileFind find2; str=__argv[p]; CString Newstr=str+_T("\\*.*"); if(find2.FindFile(Newstr)){ int i=1; while(i){ if(str==""){ return; } i=find2.FindNextFile(); if(find2.IsDots()){ continue; } if(find2.IsDirectory()){ FolderDrop(find2.GetFilePath()); continue; } filename=str+"\\"+find2.GetFileName(); kakucho=GetKaku(filename);//ファイルの拡張子をとりだす while((index3=m_listC.GetNextItem(index3,LVNI_ALL))!=-1){ indexstr=m_listC.GetItemText(index3,0); if(kakucho==indexstr){ kdlg.m_DirectoryFileNameArray.Add(filename); } } m_FilenameArray.Add(filename); m_FolderFileNumber++; } find2.Close(); } } }フォルダの中のファイルを全て取り出すプログラムですが実際にMessageBoxなどで
調べてみると無限ループになってるようですが、どこがおかしいのかおしえてください。