VC中我有多个txt存在同一个文件夹下,我想通过CFileDialog类选择文件夹进行批处理,而不是一一

VC中我有多个txt存在同一个文件夹下,我想通过CFileDialog类选择文件夹进行批处理,而不是一一选择每个txt进行处理,怎么办啊?... VC中我有多个txt存在同一个文件夹下,我想通过CFileDialog类选择文件夹进行批处理,而不是一一选择每个txt进行处理,怎么办啊? 展开
 我来答
Dogous
2009-04-28 · TA获得超过259个赞
知道小有建树答主
回答量:144
采纳率:0%
帮助的人:160万
展开全部
////////////////////////////////////////////////////////////////////////获取文件夹下所有文件
//自己添加这两行,与多文件操作,判断文件(夹)是否存在有关
#pragma comment(lib, "shlwapi.lib")
#include "shlwapi.h"

{
CString strFolderDirection="";
GetDirection(strFolderDirection);
GetMultiFilePahtName(strFolderDirection,ArrayE00Path,"*.txt");
}

void CAutoClickDlg::GetDirection(CString &FolderDir)
{LPMALLOC pMalloc;
/*Gets the Shell's default allocator */
if (::SHGetMalloc(&pMalloc) == NOERROR)
{
BROWSEINFO bi;
char pszBuffer[MAX_PATH];
for (int i=0;i<MAX_PATH;i++) pszBuffer[i]=' ';//将pszBuffer全部赋为空格
LPITEMIDLIST pidl;
//Get help on BROWSEINFO struct-it's got all the bit settings.
bi.hwndOwner = GetSafeHwnd();
bi.pidlRoot = NULL;
bi.pszDisplayName = pszBuffer;
bi.lpszTitle = _T("请选择文件目录:");
bi.ulFlags = BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS;
bi.lpfn = NULL;
bi.lParam = 0;
if ((pidl = ::SHBrowseForFolder(&bi)) != NULL)
{
::SHGetPathFromIDList(pidl, pszBuffer);
pMalloc->Free(pidl);
}
pMalloc->Release();
FolderDir=pszBuffer;
}

}

void CAutoClickDlg::GetMultiFilePahtName(CString folder, CStringArray &files, CString filter)
{
CFileFind FFind;
CString szDir = folder;
if(szDir.Right(1) != "\\")szDir += "\\";
szDir += filter;
BOOL Ressult = FFind.FindFile(szDir);

CString Filepath;
while(Ressult)
{
Ressult = FFind.FindNextFile();
if(!FFind.IsDirectory()&&!FFind.IsDots())
{
Filepath=FFind.GetFilePath();
files.Add(Filepath);
}

}
FFind.Close();

}
百度网友13dfde1
2009-05-12
知道答主
回答量:30
采纳率:0%
帮助的人:10万
展开全部
CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName =NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter =NULL, CWnd* pParentWnd = NULL );
DWORD dwFlags
自定义标志,当要进行多选的时候添加OFN_ALLOWMULTISELECT

CFileDialog::GetPathName 得到打开文件的路径名

For example, GetPathName will return "C:\FILES\TEXT.DAT" for the file

C:\FILES\TEXT.DAT.

CFileDialog::GetStartPosition得到列表中第一个文件路径的位置。

该函数使用时候,构造函数中的dwFlags必须选定OFN_ALLOWMULTISELECT
依次取出文件处理就可以了

参考资料: http://hi.baidu.com/xtxycy/blog

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vbtraz
2009-04-28 · TA获得超过5532个赞
知道大有可为答主
回答量:4152
采纳率:0%
帮助的人:4455万
展开全部
SHBrowseForFolder
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式