北京租房哪里性价比高:VC中文件路径问题

来源:百度文库 编辑:偶看新闻 时间:2024/04/27 04:09:02

VC中文件路径问题

C/C++ 2008-10-17 11:17:14 阅读1298 评论0   字号: 订阅

     在VC编程中,文件和路径问题是很重要的。例如,MFC编程中要我们会使用文件类来打开或保存一个文件;编程中要获得某一目录并在该目录下顺序的存储文件;编程中要指定某一目录并顺序读取该目录下的文件等。下面我简要介绍下编程过程中遇到的目录操作。      1.使用文件对话框打开或保存文件     使用文件对话框类CFileDialog。CFileDialog实现了Windows的基本文件对话框。其构造函数原型为:
     CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWnd* pParentWnd = NULL )。
其中第一个参数为TRUE时,构造一个打开文件对话框对象,为FALSE时构造一个保存文件对话框对象;参数LPCTSTR lpszFilter为打开或保存的类型 常用一个字符串传递。
     典型的使用方法如下:
     char szPara[] = "*.bmp|*.bmp|*.*|*.*||";
     UpdateData(TRUE);
     //保存对话框 打开
     CFileDialog dlg(FALSE/TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,szPara);
//注:第一个参数为TRUE为打开,为FALSE为保存
     if ( IDOK == dlg.DoModal() )
     {
         m_BmpPath = dlg.GetPathName();
         UpdateData(FALSE);
     }
     注:以上操作仅仅将文件的路径名传递给了参数,具体的打开或保存操作自行完成。
     CFileDialog包含的重要成员函数: DoModal Displays the dialog box and allows the user to make a selection. GetPathName Returns the full path of the selected file. GetFileName Returns the filename of the selected file. GetFileExt Returns the file extension of the selected file. GetFileTitle Returns the title of the selected file. GetNextPathName Returns the full path of the next selected file. GetReadOnlyPref Returns the read-only status of the selected file. GetStartPosition Returns the position of the first element of the filename list.        2.获取路径并顺序存储文件      a.得到当前运行程序所在路径(其实得到的是当前执行程序存放路径)(考察!!!)      TCHAR szFilePath[MAX_PATH + 1];          GetModuleFileName(NULL, szFilePath, MAX_PATH);                (_tcsrchr(szFilePath, _T('\\')))[1] = 0;          CString strtemp=szFilePath;    函数说明:GetModuleFileName:The GetModuleFileName function retrieves the full path and filename for the executable file containing the specified module.    b.得到程序当前工作路径:(因为程序在运行过程中,会改变工作路径)       char pBuf[MAX_PATH];                                 //存放路径的变量              GetCurrentDirectory(MAX_PATH,pBuf);                   //获取程序的当前目录       strcat(pBuf,"\\");    CString strtemp=pBuf;  函数说明:GetCurrentDirectory:The GetCurrentDirectory function retrieves the current directory for the current process    c.通过路径得到目录并自动生成文件名顺序存取文件   例如:CString m_BmpPath中保存当前文件的路径,我们要得到该文件所在的文件夹路径也就是目录。则需进行以下操作:   int n = m_BmpPath.ReverseFind('\\');//查找最右侧‘\’的位置
   m_BmpPath = m_BmpPath.Left(n);//截取最右侧‘\’左侧部分
   m_BmpPath += '\\';//添加‘\’
    使用int nFrameNo 进行计数并将其作为文件名,将文件存放在m_BmpPath目录下,进行以下操作:   CString strFilePath;//定义文件路径存放使用的字符串   for(;;)   {       strFileName.Format("%s%d.bmp",strBmpPath,lFrameNo);//动态生成文件名       //保存文件   }        d.指定路径并顺序读取该路径下的文件    假定在文件夹D:\File\ 下存放有100幅图片,图片命名是有规律的,我们要读取这些图片。则需进行以下操作:    CFileFind finder; //定义CFileFind对象
    CString strName; //保存文件路径名
    BOOL bIsWorking; //标志是否找完所有文件
    SetCurrentDirectory("D:\\File");//设置查找目录
    bIsWorking = finder.FindFile("*.bmp");//开始一个查找,查找.bmp文件
    for ( ;; )//循环查找 注:FindNextFile()找到最后一个文件时返回0;
    {
      if(bIsWorking)
      {
            bIsWorking = finder.FindNextFile();
            strName = finder.GetFilePath();//文件路径
            读取文件;
      }
      else
           break;
  
   }
    注:Windows XP环境下 文件系统为FAT32 时  使用FindFile() FindNextFile()进行文件查找时得到的文件顺序是文件的写入顺序。即时间顺序。  TrimLeft方法的意义是:从字符串左边看起,遇到括号中出现的字符(参数)全部截去,直到出现第一个括号中未出现的字符时停止截除,即使后面又出现了参数中有的字符也不会截去了。TrimLeft方法的意义是:从字符串左边看起,遇到括号中出现的字符(参数)全部截去,直到出现第一个括号中未出现的字符时停止截除,即使后面又出现了参数中有的字符也不会截去了。 TrimRight方法类似。 去除当前字符串的前导和后缀空格字符TrimLeft()、TrimRight()
Trim()
功能删除字符串首部和尾部的空格。
语法Trim ( string )
参数string:string类型,指定要删除首部和尾部空格的字符串返回值String。函数执行成功时返回删除了string字符串首部和尾部空格的字符串,发生错误时返回空字符串("")。如果任何参数的值为NULL,Trim()函数返回NULL。