C++Builder 中文件名与文件路径的部分操作总结
最近做的一个项目,点击保存文件或者打开文件后需要把完整的文件路径和 文
件名分开并且提取出来,而且部分代码需要得知当前的工作路径以及某个执行 文件
的存放路径,程序在打开和存储的时候文件路径和文件名经常出一些小问题。在这
里总结一下。
1. AnsiString fastcall GetCurrentDir(); 返回当前工作目录
例如:
AnsiString filepath=GetCurrentDir();
2.ExtractFilePath(FileName:String); 该函数返回路径名,其结尾字符总是
“\”
类似还有
ExtractFileDir(FileName:String) 该函数同样返回路径名,但不包括结尾的字
符“\”,除非返回的路径是根目录。(这个有些烦人,常常在根目录下面存放的
时候会出错)
例如:
filepath=ExtractFilePath(filename);(包含了“\”)
3.String substring(int beginIndex) 返回一个新的字符串,它是此字符串的一个
子字符串。该子字符串始于指定索引处的字符,一直到此字符串末尾。
public String substring(int beginIndex, int endIndex)返回一个新字符串,它是此字符
串的一个子字符串。该子字符串从指定的 beginIndex 处开始,一直到索引
endIndex - 1 处的字符。因此,该子字符串的长度为 endIndex-beginIndex
例如,下面的语句可以判断该文件名是否包含“.stproj”的后缀名
if(NewPGuide1->NPnameEdit->Text.SubString(NewPGuide1->NPnameEdit->Tex
t.Length()-6,7)==".stproj")
4.object.FileExists(filespec) 如果指定的文件存在返回 True;否则返回
False。
5.下面的代码判断文件名是否包含后缀,如果没有,就加上。
if(NewPGuide1->NPnameEdit->Text.Length()<7)// 如果长度小于 7(“.stproj”的
长度),那么肯定不包含后缀
{
NPG1filename=NewPGuide1->NPnameEdit->Text+".stproj";
}
else