GDAL中文件名处理函数

在实际编码过程中会对文件名、路径进行解析等操作,GDAL给我提供一些简单常用的函数接口,在cpl_conv.h头文件中,我们来看看吧!

/* ----------------------------------------------------- */
/*      获取可执行文件的路径                               */
/* ----------------------------------------------------- */
int CPL_DLL CPLGetExecPath( char *pszPathBuf, int nMaxLength );

/* ----------------------------------------------------- */
/*      文件名处理函数                                    */
/* ----------------------------------------------------- */
const char CPL_DLL *CPLGetPath( const char * );
const char CPL_DLL *CPLGetDirname( const char * );
const char CPL_DLL *CPLGetFilename( const char * );
const char CPL_DLL *CPLGetBasename( const char * ) ;
const char CPL_DLL *CPLGetExtension( const char * );
char       CPL_DLL *CPLGetCurrentDir(void);
const char CPL_DLL *CPLFormFilename( const char *pszPath,
                                     const char *pszBasename,
                                     const char *pszExtension );
const char CPL_DLL *CPLFormCIFilename( const char *pszPath,
                                       const char *pszBasename,
                                       const char *pszExtension );
const char CPL_DLL *CPLResetExtension( const char *, const char * );

下面简单举个例子说明: 

    char szExecPath[1024];
	// 执行体全路径
	CPLGetExecPath(szExecPath, sizeof(szExecPath));
	printf("CPLGetExecPath: %s\n", szExecPath);
	
	// 返回文件名的目录路径部分
	CPLString pszPath = CPLGetPath(szExecPath);
	printf("CPLGetPath: %s\n", pszPath.c_str());
	// 返回文件名的目录路径部分
	// 与CPLGetPath区别是:如果传入的只是文件名没有路径,CPLGetDirname函数会返回点(.)
	CPLString pszDirName = CPLGetDirname(szExecPath);
	printf("CPLGetDirname: %s\n", pszDirName.c_str());

	// 比较CPLGetPath和CPLGetDirname的区别
	CPLString pszPath2 = CPLGetPath("test.shp");
	printf("CPLGetPath: %s\n", pszPath2.c_str());
	CPLString pszDirName2 = CPLGetDirname("test.shp");
	printf("CPLGetDirname: %s\n", pszDirName2.c_str());

	CPLString pszFileName = CPLGetFilename(szExecPath);
	printf("CPLGetFilename: %s\n", pszFileName.c_str());

	CPLString pszBaseName = CPLGetBasename(szExecPath);
	printf("CPLGetBasename: %s\n", pszBaseName.c_str());

	CPLString pszExtension = CPLGetExtension(szExecPath);
	printf("CPLGetExtension: %s\n", pszExtension.c_str());

	CPLString pszZipPath = CPLFormFilename(pszDirName, pszBaseName, "zip");
	printf("CPLFormFilename: %s\n", pszZipPath.c_str());

	CPLString pszShpPath = CPLResetExtension(pszZipPath, "shp");
	printf("CPLResetExtension: %s\n", pszShpPath.c_str());

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烟云之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值