MFC中想实现打开文件或文件夹,该怎么实现呢
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC中想实现打开文件或文件夹,该怎么实现呢相关的知识,希望对你有一定的参考价值。
目的只是通过选择得到一个文件/文件夹的路径,不想写成文件和文件夹2个按钮,有什么方法么?
把"通过选择得到一个文件/文件夹的路径" 这些代码实现 写到某个函数里,不是写到按钮实现的函数里就行了。例如:【以下代码中 filePathFile就是你想要的路径】
在主体函数中:
CFileDialog *lpszOpenFile; //定义一个CfileDialog对象
//生成一个对话框
lpszOpenFile = new CFileDialog
(TRUE,"abc.txt","",OFN_FILEMUSTEXIST |OFN_HIDEREADONLY , "文件类型(*.txt)|*.txt|所有文件(*.*)|*.*|");
if(lpszOpenFile->DoModal() == IDOK )//假如点击对话框确定按钮
filePathName = lpszOpenFile->GetPathName();//得到打开文件的路径
if(!file.Open(filePathName,CFile::modeRead))
MessageBox("can not open file!");
return;
参考技术A
SHBrowserForFolder函数可以
使用BIF_BROWSEINCLUDEFILES标识
typedef struct _browseinfoHWND hwndOwner;
PCIDLIST_ABSOLUTE pidlRoot;
LPTSTR pszDisplayName;
LPCTSTR lpszTitle;
UINT ulFlags;
BFFCALLBACK lpfn;
LPARAM lParam;
int iImage;
BROWSEINFO, *PBROWSEINFO, *LPBROWSEINFO;
ulFlags
Flags specifying the options for the dialog box. This member can include
zero or a combination of the following values.
BIF_BROWSEINCLUDEFILES
Version 4.71
. The
browse dialog box will display files as well as folders.
方法和思路很多,举个栗子吧:
重写CFileDialog的回调函数,回调函数中重写IDOK按钮的消息响应,如果选择的是文件夹,则返回文件夹路径。
这应该是最简单的实现方法,不过里面有一个问题,就是对CFileDialog的Get函数会有问题。如果要更合理的实现,只能重载CFileDialog实现更好。
利用MFC的CFtpConnection类实现递归下载文件夹
一、用到的CInternetSession、CFtpConnection类的接口
二、编码实现
/*
参数说明:
remotefile 要下载的ftp目录或文件,如"/杭州/滨江/五水共治.rar"
localpath 保存到本地的目录,如"D:\\Download"
isDir 指明要下载的是文件还是文件夹
ftpaddr ftp服务器地址
username 登陆ftp服务器的用户名
ftpPass 登陆f密码
/
BOOL DownloadFromFTP(CString remotepath,CString localpath,BOOL isDir,CString ftpaddr,CString username,CString password,int port)
{
int index = remotepath.ReverseFind(’/’);
if (index == -1)
{
return FALSE;
}
CString remotefile = remotepath.Mid(index+1,remotepath.GetLength());
CInternetSession sess(_T(“Download Files Session”));
CFtpConnection pFtpCon = NULL;
try
{
pFtpCon = sess.GetFtpConnection(ftpaddr,username,password,port);
if (pFtpCon == NULL) //如果连接失败
{
return FALSE;
}
CFtpFileFind ftpFinder(pFtpCon);
BO
以上是关于MFC中想实现打开文件或文件夹,该怎么实现呢的主要内容,如果未能解决你的问题,请参考以下文章
mfc通过MapWinGIS控件读取shp文件(通过#import实现)
excel中想实现使用Python代替VBA,请问应该怎么做
MFC中怎样实现通过点击按钮而打开对话框选择文件,并将选择的txt文件内容导入到Listcontrol控件指定的列中。