BOOL CPcDownLoaderView::Search_Directory(ThreadInfo*pInfo, char* szFilename)
{
HANDLE hFindFile;
WIN32_FIND_DATA fileData;
char search_Path[MAX_PATH];
strcpy(search_Path,szFilename);
strcat(search_Path,"//*.*");
hFindFile = FindFirstFile(search_Path,&fileData);
while(INVALID_HANDLE_VALUE!=hFindFile)
{
if(!strcmp(".",fileData.cFileName))
{
if(!FindNextFile(hFindFile,&fileData))
break;
else
continue;
}
if(!strcmp("..",fileData.cFileName))
{
if(!FindNextFile(hFindFile,&fileData))
break;
else
continue;
}
sprintf(search_Path,"%s//%s",szFilename,fileData.cFileName);
//目录操作
if(FILE_ATTRIBUTE_DIRECTORY & fileData.dwFileAttributes)
{
#ifdef DEBUG_TEST_MODE
TestDirectoryPath(search_Path);
#else
if(TRUE == IsValidPath(search_Path))
{
//先发送创建目录命令
if(TRUE != CM_CreateDirectory(pInfo,search_Path))
{
pInfo->strTemp = _T("创建目录错误!");
::SendMessage(pInfo->pDlgWnd,MY_MSG01,(int)pInfo->nHardwareNo,NULL);
goto meexit;
}
}
else
{
pInfo->strTemp = _T("传送路径为根目录!");
::SendMessage(pInfo->pDlgWnd,MY_MSG01,(int)pInfo->nHardwareNo,NULL);
}
#endif
//然后递归遍历子目录
if(TRUE != Search_Directory(pInfo,search_Path))
{
goto meexit;
}
}
//单个文件操作
else
{
#ifdef DEBUG_TEST_MODE
TestFilePath(search_Path);
#else
if(TRUE == IsValidPath(search_Path))
{
//发送文件名称
if(TRUE != CM_CreateFile(pInfo,search_Path))
{
pInfo->strTemp = _T("创建文件错误!");
::SendMessage(pInfo->pDlgWnd,MY_MSG01,(int)pInfo->nHardwareNo,NULL);
goto meexit;
}
//发送文件数据
if(TRUE != CM_TransData(pInfo,search_Path))
{
pInfo->strTemp = _T("发送文件错误!");
::SendMessage(pInfo->pDlgWnd,MY_MSG01,(int)pInfo->nHardwareNo,NULL);
goto meexit;
}
}
else
{
pInfo->strTemp = _T("传送路径为根目录!");
::SendMessage(pInfo->pDlgWnd,MY_MSG01,(int)pInfo->nHardwareNo,NULL);
}
#endif
}
if(!FindNextFile(hFindFile,&fileData))
break;
}
FindClose(hFindFile);
return TRUE;
meexit:
FindClose(hFindFile);
return FALSE;
}
{
HANDLE hFindFile;
WIN32_FIND_DATA fileData;
char search_Path[MAX_PATH];
strcpy(search_Path,szFilename);
strcat(search_Path,"//*.*");
hFindFile = FindFirstFile(search_Path,&fileData);
while(INVALID_HANDLE_VALUE!=hFindFile)
{
if(!strcmp(".",fileData.cFileName))
{
if(!FindNextFile(hFindFile,&fileData))
break;
else
continue;
}
if(!strcmp("..",fileData.cFileName))
{
if(!FindNextFile(hFindFile,&fileData))
break;
else
continue;
}
sprintf(search_Path,"%s//%s",szFilename,fileData.cFileName);
//目录操作
if(FILE_ATTRIBUTE_DIRECTORY & fileData.dwFileAttributes)
{
#ifdef DEBUG_TEST_MODE
TestDirectoryPath(search_Path);
#else
if(TRUE == IsValidPath(search_Path))
{
//先发送创建目录命令
if(TRUE != CM_CreateDirectory(pInfo,search_Path))
{
pInfo->strTemp = _T("创建目录错误!");
::SendMessage(pInfo->pDlgWnd,MY_MSG01,(int)pInfo->nHardwareNo,NULL);
goto meexit;
}
}
else
{
pInfo->strTemp = _T("传送路径为根目录!");
::SendMessage(pInfo->pDlgWnd,MY_MSG01,(int)pInfo->nHardwareNo,NULL);
}
#endif
//然后递归遍历子目录
if(TRUE != Search_Directory(pInfo,search_Path))
{
goto meexit;
}
}
//单个文件操作
else
{
#ifdef DEBUG_TEST_MODE
TestFilePath(search_Path);
#else
if(TRUE == IsValidPath(search_Path))
{
//发送文件名称
if(TRUE != CM_CreateFile(pInfo,search_Path))
{
pInfo->strTemp = _T("创建文件错误!");
::SendMessage(pInfo->pDlgWnd,MY_MSG01,(int)pInfo->nHardwareNo,NULL);
goto meexit;
}
//发送文件数据
if(TRUE != CM_TransData(pInfo,search_Path))
{
pInfo->strTemp = _T("发送文件错误!");
::SendMessage(pInfo->pDlgWnd,MY_MSG01,(int)pInfo->nHardwareNo,NULL);
goto meexit;
}
}
else
{
pInfo->strTemp = _T("传送路径为根目录!");
::SendMessage(pInfo->pDlgWnd,MY_MSG01,(int)pInfo->nHardwareNo,NULL);
}
#endif
}
if(!FindNextFile(hFindFile,&fileData))
break;
}
FindClose(hFindFile);
return TRUE;
meexit:
FindClose(hFindFile);
return FALSE;
}