69,336
社区成员
发帖
与我相关
我的任务
分享
void CHYXQuantTraderDlg::OnImpStrategyBtn()
{
TCHAR pszPath[MAX_PATH];
CString pathAndSuffix;
CString fileName[MAX_IMP_FILE_NUM];
int fileNum = 0;
BROWSEINFO bi;
bi.hwndOwner = this->GetSafeHwnd();
bi.pidlRoot = NULL;
bi.pszDisplayName = NULL;
bi.lpszTitle = TEXT("请选择策略文件所在目录");
bi.ulFlags = BIF_RETURNONLYFSDIRS | BIF_STATUSTEXT;
bi.lpfn = NULL;
bi.lParam = 0;
bi.iImage = 0;
if (!CTPStatus.initFinished)
{
AfxMessageBox(_T("系统未初始化完毕,请稍候"));
return;
}
if (addingNewStrategy)
{
AfxMessageBox(_T("有新策略未初始化完毕,请稍候"));
return;
}
if (impStrategyDlg.IsWindowVisible())
{
DEBUG_LOG("导入窗口已打开");
return;
}
LPITEMIDLIST pidl = SHBrowseForFolder(&bi);
if (pidl == NULL)
{
return;
}
if (SHGetPathFromIDList(pidl, pszPath))
{
//AfxMessageBox(pszPath);
CFileFind tempFind;
//是否成功找到文件
BOOL bFound;
pathAndSuffix.Format(_T("%s\\*.sth"), pszPath); //修改"*.*"可限定查找文件类型
bFound = tempFind.FindFile(pathAndSuffix);
//遍历文件,找够100个就中断
while (bFound && fileNum < MAX_IMP_FILE_NUM)
{
//第一次执行FindNextFile是选择第一个文件,以后执行为选择下一个文件
bFound = tempFind.FindNextFile();
//如果找到的是返回上层的目录 则结束本次查找
if (tempFind.IsDots())
continue;
if (tempFind.IsDirectory())
{
//找到的是文件夹,不处理
}
else
{
//得到文件名,包括后缀名,存入数组
fileName[fileNum] = tempFind.GetFileName();
fileNum ++;
}
}
tempFind.Close();
//打开导入管理窗口
impStrategyDlg.SetFileList(pszPath, fileName, fileNum);
impStrategyDlg.ShowWindow(SW_SHOW);
}
return;
}
dir /S /A /B *.cpp > list.txt