c++中怎么得到当前目录名字(不带路径)?

c++中怎么获取当前目录的文件名?不是目录中的文件或文件夹,而是当前目录本身的文件名!... c++中怎么获取当前目录的文件名?不是目录中的文件或文件夹,而是当前目录本身的文件名! 展开
 我来答
百度网友bec1679
推荐于2016-10-06 · TA获得超过2185个赞
知道大有可为答主
回答量:1093
采纳率:66%
帮助的人:610万
展开全部
CString GetFileNameByFilePath()
{
char pFileName[MAX_PATH] = {0}; 
//得到程序自身的全路径 
DWORD dwRet = GetModuleFileNameW(NULL, (LPWCH)pFileName, MAX_PATH); 

CString filepath ;
filepath.Format(_T("%s"),pFileName);
 
CString Result; 
int nPos = filepath.ReverseFind(_T('\\'));
if ( nPos != -1 )
{
CString strTemp;
strTemp = filepath.Right( filepath.GetLength() - nPos - 1 );
Result = strTemp.Left(  strTemp.ReverseFind(_T('.')) );
}

return Result;  //返回文件名
}
追问
额,能不能解释一下都是什么意思?MAX_PATH应该是一个常量吧,我直接写256应该可以吧?DWORD,dwRet,LPWCH又是什么?CString应该要加头文件吧?大神可不可以直接给一个在vc6.0下可以直接编译的小程序啊,最好尽量带注释,我是初学者,很多东西不是很懂!谢谢..
追答

#include <Windows.h>
#include <iostream>
#include <string>
using namespace std;

string getFileName()
{
string strResult;
char czPath[256]={0};
GetModuleFileName(NULL, czPath , 256);  //获取全路径
string strPath = czPath;
cout << "文件名(带全路径) : "<<strPath.c_str() << endl;
int nPos = strPath.rfind('\\'); //查找最后一个 \ 出现的位置

if ( nPos != -1 )
{
string strTemp;
//从 nPos + 1 位置开始,截取指定长度字符串
strTemp = strPath.substr( nPos + 1 , strPath.length() - nPos   ); 
cout << "文件名(带后缀名) : "<<strTemp.c_str() << endl;

strResult = strTemp.substr( 0 , strTemp.find('.') );
cout << "文件名(不带后缀) : "<<strResult.c_str() << endl;
}

return strResult; //返回文件名
}

int main( )
{
getFileName();
getchar();
return 0;
}
Fri3zz
推荐于2016-11-03 · TA获得超过459个赞
知道答主
回答量:34
采纳率:0%
帮助的人:13.5万
展开全部
#include <Windows.h>
中使用
DWORD WINAPI GetModuleFileName(
_In_opt_ HMODULE hModule,
_Out_ LPTSTR lpFilename,
_In_ DWORD nSize
);
#include <stdlib.h>
中使用
void _splitpath( const char *path, char *drive, char *dir, char *fname, char *ext );
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
优质内容提供者andy
2014-12-04 · TA获得超过1561个赞
知道大有可为答主
回答量:2551
采纳率:72%
帮助的人:743万
展开全部
带路径的截取下不就可以了 这么讲究
更多追问追答
追问
关键是我不知道怎么截取!如果能通过某种方法实现也是可以的啊!!关键是你要把那个方法说出来啊!!!
追答
substring +indexof
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式