TCHAR _szPath[MAX_PATH + 1]={0}
GetModuleFileName(NULL, _szPath, MAX_PATH)
(_tcsrchr(_szPath, _T('\\')))[1] = 0//删除文件名,只获得路径 字串
CString strPath
for (int n=0_szPath[n]n++)
{
if (_szPath[n]!=_T('\\'))
{
strPath +=_szPath[n]
}
else
{
strPath += _T("\\\\")
}
}
MessageBox(strPath)//输出==e:\\program\\Debug\\
//头文件用到 windows.h
int main(){
string s = "c:\\abc\\def\\text.txt"
int xie_index = s.find_last_of('\\') // 路径中最后一个\的位置
string file_dirname = s.substr(0, xie_index + 1)
string file_basename = s.substr(xie_index + 1, s.size())
cout <<file_dirname <<endl <<file_basename <<endl
}
关于通过 C 语言编程获取到某个文件的完整路径、以及文件名称的问题,那是毫无疑问可以做到的。但是具体的编程我由于已经好多年没有编写 C 语言程序了。故具体的程序调试过程需要你自己进行完成了。关于这部分的问题,我记得 C 语言库函数大全上面肯定是有的,你可以参考有关 C 语言库函数的教材。
但是注意一点就是:如果是在 WINDOWS 系统下面的编程,那么路径名必须使用双斜线,即:\\ 才行。例如:若想表示打开驱动器 D 上的 MY_SUBDIR 子目录下面的 MYFILE.TXT 文件,则在 C 语言源程序中要写为如下代码:
#include <stdio.h>
void main( )
{
FILE * fpr
fpr = fopen("D:\\MY_SUBDIR\\MYFILE.TXT", "r") /* 这样写才是正确的语句。*/
......
fclose(fpr)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)