vc下經常用到的操作
2015/12/06 13:18
瀏覽113
迴響0
推薦0
引用0
1、打開目錄
常用於目錄選擇
CString SelectPath()
{
char filename[255];
BROWSEINFO info;
info.hwndOwner = NULL ;
info.pidlRoot = (LPCITEMIDLIST)NULL;
info.pszDisplayName = filename;
info.lpszTitle = "請選擇文件夾:";
info.ulFlags = BIF_BROWSEFORCOMPUTER | BIF_RETURNONLYFSDIRS ;
info.lpfn = NULL;
info.lParam = 0;
info.iImage = 0 ;
LPITEMIDLIST idlist = SHBrowseForFolder(&info);
char szpath[255];
SHGetPathFromIDList(idlist,szpath);
return szpath;
}
2、打開文件
常用於文件選擇
CFileDialog dlg(true, NULL, NULL, NULL, "*.txt|*.txt||");
if(dlg.DoModal() == IDOK)
{
CString strFile = dlg.GetPathName();
}
3、遍歷目錄
采用遞歸方式,輸出文件名稱和路徑
#include "windows.h"
void BrowseFile(string& strFile)
{
int nRet =0;
string dirTemp;
string strTemp;
WIN32_FIND_DATA FindFileData;
HANDLE hFind =INVALID_HANDLE_VALUE;
string strDir = strFile;
nRet = strDir.find_last_of("\");
if(nRet strDir+="\\*.*";
else
strDir+="*.*";
hFind = FindFirstFile((char*)strDir.c_str(), &FindFileData);
if (hFind == INVALID_HANDLE_VALUE)
return ;
while (FindNextFile(hFind, &FindFileData))
{
if(FindFileData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
{
if((strcmp(FindFileData.cFileName, ".") == 0)|| (strcmp(FindFileData.cFileName, "..") == 0))
continue;
dirTemp=strFile;
dirTemp=dirTemp+"\";
dirTemp+= FindFileData.cFileName;
BrowseFile(dirTemp);//遞歸調用
}
else //到達最低層的文件
{
strTemp=strFile;
strTemp=strFile+"\";
strTemp+=FindFileData.cFileName;
nRet = FindStr(strFileName);
cout<
}
}
FindClose(hFind);
}
你可能會有興趣的文章:
限會員,要發表迴響,請先登入


