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などで調べてみると無限ループになってるようですが、どこがおかしいのかおしえてください。