vc 使用CFileDialog打开或保存文件

vc 使用CFileDialog打开或保存文件

vc 使用CFileDialog打开或保存文件
 
今天是我的生日,也祝福自己生日快乐,以后要淡化生日。
 
//一。单选的“浏览文件对话框”
void one_select_file(CString &strPath,CString &strFile,BOOL open_save)
{//单选的“浏览文件对话框”
//CFileDialog第一个参数, TRUE为"打开"Open, FALSE为"另存"Save As
文件(*.csv)|*.csv|所有文件(*.*) |*.*||" );
  CFileDialog fileDlg(open_save ,  // TRUE打开Open,FALSE保存Save As文件对话框
    ".csv",  // 默认的打开文件的类型
    strFile, // 默认打开的文件名 
    OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT | OFN_NOCHANGEDIR ,  // 单选打开
    "Excel文件(*.csv)|*.csv|所有文件(*.*) |*.*||"  // 打开的文件类型
  );


 fileDlg.m_ofn.lpstrInitialDir=strPath;//初始化路径。
  if(fileDlg.DoModal() == IDOK)
  {
    strFile = fileDlg.GetPathName();//返回选择或输入的文件名称,
  }
}
 
//二。多选的“浏览文件对话框”
void mul_select_file(CString strPath,CString &strFiles,CString split)
{
  CFileDialog fileDlg(TRUE,  // TRUE打开,FALSE保存文件对话框
    ".csv",  // 默认的打开文件的类型
    NULL, // 默认打开的文件名
    OFN_ALLOWMULTISELECT|OFN_ENABLESIZING|OFN_HIDEREADONLY | OFN_NOCHANGEDIR,  // 多选打开
    "Excel文件(*.csv)|*.csv|所有文件(*.*) |*.*||"  // 打开的文件类型
  );
  fileDlg.m_ofn.lpstrTitle="选择多个文件";
  fileDlg.m_ofn.lpstrInitialDir=strPath.GetBuffer(0);  // 设置默认路径
 
  if (IDOK==fileDlg.DoModal())
  {
    CString pathName;
    POSITION pos_file;
    pos_file = fileDlg.GetStartPosition();
  
    strFiles="";
    while(NULL!=pos_file)
    {//循环读出每个文件路径和名称
      pathName=fileDlg.GetNextPathName(pos_file);
      strFiles+=pathName+split;//"|";
    } 
  }
}
 
//三。调用方式
void test()
{
 CString strPath="c:/";
 CString strFileName="my.csv";


//1. 获得要“打开”文件
 one_select_file(strPath,strFileName,TRUE); //TRUE打开文件
//。。。获得文件名称后,可以在这里做“打开”,从磁盘文件获取内容
 
//2. 获得要“另存”文件名称
 one_select_file(strPath,strFileName,FALSE); //FALSE另存文件
//。。。获得文件名称后,可以在这里做“另存”,将内容存入磁盘文件
 
//3. 获得选择的多个文件全名称
 CString strFiles;
 CString split="|";
 mul_select_file(strPath,strFiles,split);
 AfxMessageBox(strFiles);
 
}
 
//四 初始路径的指定
1 实际上是CFileDialog 来回切换路径,第三个参数filename若使用相对路径是找不到的,只有包含绝对路径才能找到,比如 filename=“c:\test\*.*” ,filename=“ c:\test\*.mp3”  才导向目标路径,这点要注意。
 CFileDialog fd(TRUE ,NULL,filename,OFN_HIDEREADONLY ,"音频文件|*.mp3|所有文件(*.*) |*.*||");
 
 2 为了 避免当前路径改变,则要把在CFileDialog的第四个参数dwFlags标志设置为OFN_NOCHANGEDIR
只读,隐含,覆盖写,不改变路径,最完整的方法如下:
CFileDialog fDlg(open_save ,NULL , filename , OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_NOCHANGEDIR , "波形文件(*.csv)|*.csv|所有文件(*.*) |*.*||" );
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值