我要实现的功能是让用户把文件保存到一个固定的目录,但要如果如下两种方法
1。CFileDialog
2。OPENFILENAME和GetSaveFileName
会有如下问题
1。用户可以改变目录
2。点击右键,可以在此目录下建新的目录
如果自己写,要考虑很多问题,希望大家给个意见

解决方案 »

  1.   

    CString solid_path_filename = "C:\\yourpath\\yoursubpath\\yourfilename";
    CFile youfile;
    youfile.Open(solid_path_filename,CFile::modeCreate|CFile::modeWrite);
    youfile.SeekToBegin();
    youfile.Write(your_file_buffer_pointer,file_length);
    youfile.Close();以上代码看看行不行,这样即不用CFileDialog的对象,也不用写有关CFileDialog的代码,而且用户完全不知道也就干预不了你要将文件保存到固定的目录中了。
      

  2.   

    但我需要让用户去选这保存的文件名,操作比较方便,和CFileDialog一样
      

  3.   

    自己做了个选择文件的对话框不行吗
    在OnInitDialog()中加入以下代码,得到指定目录下的文件
    CString s;
    CFileFind filefind;
    BOOL filefindtrue = filefind.FindFile("C:\\yourpath\\yoursubpath\\*.*");
    while (filefindtrue)
    {
    filefindtrue = filefind.FindNextFile();
    s = filefind.GetFileName();
    m_youcombox.AddString( s );   //m_youcombox为对话框上的一个CComboBox控件
    }
    m_youcombox.SetCurSel(0);
    filefind.Close();在OnOK()中处理CComboBox控件得到的文件名字符串m_youcombox.GetLBText( m_youcombox.GetCurSel(), filename );
    //filename为你在本对话框头文件中定义的一个CString 变量在这个对话框DoModal()的后面,用一个CString的变量将filename传出来
    如你的对话框对象为dlg,则
    CString file = dlg.filename.