上海靳东影视工作室:VC中文件路径问题
来源:百度文库 编辑:中财网 时间:2024/05/21 22:28:07
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。
关于VC++中文件输出的问题。
搜索结果中文件没有路径是怎么回事?
VC++中文件指针如何移动?
电脑中文件问题
MMB中文件编译时,怎么把路径转换?
如何改变wps2000中文件的保存路径?
在protel2006中文件存盘,为什么不能选择路径存盘?
java中文件读取问题
java中文件读取问题
VC++6.0 路径设置
U盘中文件损坏的问题
Server2003中文件解密权限问题
VB list 中文件打开的问题
Dreamweaver中文件域的问题~!!急~~!
关于vb中文件输入的问题
关于电脑中文件的问题
asp中文件上传的问题。
文件分割中文件保存问题?
请问vb.net编写WEB程序在站点中文件路径的表示方法?
apache不支持中文路径
什么是中文路径
c语言中文件数据的传输问题
关于系统中文件无缘无故丢失的问题。
Xp启动过程中文件出错的问题