Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >OSG C++ 获取文件后缀 OSG修改文件后缀名

OSG C++ 获取文件后缀 OSG修改文件后缀名

作者头像
acoolgiser
发布于 2019-10-22 10:03:51
发布于 2019-10-22 10:03:51
4.1K00
代码可运行
举报
文章被收录于专栏:acoolgiser_zhuanlanacoolgiser_zhuanlan
运行总次数:0
代码可运行

OSG C++ 获取文件后缀 OSG修改文件后缀名:

在使用OSG开发时,可以使用OSG提供的接口快速实现文件后缀名的修改,而不用麻烦地自己去写C++代码。

在osg的osgDB/FileNameUtils库中,提供了获取和修改文件后缀的函数,如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/** Gets the parent path from full name (Ex: /a/b/c.Ext => /a/b). */
extern OSGDB_EXPORT std::string getFilePath(const std::string& filename);
/** Gets the extension without dot (Ex: /a/b/c.Ext => Ext). */
extern OSGDB_EXPORT std::string getFileExtension(const std::string& filename);
/** Gets the extension including dot (Ex: /a/b/c.Ext => .Ext). */
extern OSGDB_EXPORT std::string getFileExtensionIncludingDot(const std::string& filename);
/** Gets the lowercase extension without dot (Ex: /a/b/c.Ext => ext). */
extern OSGDB_EXPORT std::string getLowerCaseFileExtension(const std::string& filename);
/** Gets file name with extension (Ex: /a/b/c.Ext => c.Ext). */
extern OSGDB_EXPORT std::string getSimpleFileName(const std::string& fileName);
/** Gets file path without last extension (Ex: /a/b/c.Ext => /a/b/c ; file.ext1.ext2 => file.ext1). */
extern OSGDB_EXPORT std::string getNameLessExtension(const std::string& fileName);
/** Gets file path without \b all extensions (Ex: /a/b/c.Ext => /a/b/c ; file.ext1.ext2 => file). */
extern OSGDB_EXPORT std::string getNameLessAllExtensions(const std::string& fileName);
/** Gets file name without last extension (Ex: /a/b/c.Ext => c ; file.ext1.ext2 => file.ext1). */
extern OSGDB_EXPORT std::string getStrippedName(const std::string& fileName);

如何修改文件后缀名呢,可以参考下面的代码:

首先引入头文件:

#include <osgDB/FileNameUtils>

然后给定一个目录文件,只需要两句代码即可修改后缀名,如下:

string fileName = "D:\\all.txt"; std::cout << osgDB::getNameLessExtension(fileName); // D:\\all string newfileName = osgDB::getNameLessExtension(fileName) + ".xml"; //D:\\all.xml

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/10/15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
springboot文件上传及虚拟路径设置
今日主题:springboot文件上传及虚拟路径设置 简介 相信大家在做项目中会遇到一些情况,比如文件上传,但是大家会发现他上次的目录是target目录下,也就是说,只要target目录没了,文件也就没了,这个是我们不想看到的,然后有些人就是直接将文件存到磁盘就好了啊,这个思路是没错的,但是我们在前端却不能直接引用磁盘里的真实路径的文件,因为这个存在安全问题,所以这个时候,我们就要用web服务器来帮我们做一个虚拟映射,我们访问一个虚拟路径,其实访问的就是本机的真实路径,这样保证了安全性。 环境 spri
java后端指南
2021/05/13
2.2K0
springboot文件上传及虚拟路径设置
20181125_ARTS_week22
这个解法来自 https://leetcode.com/problems/maximum-subarray/discuss/139218/Javascript-very-clear-and-short-DP-solution
Bob.Chen
2018/12/17
5080
记一次批量修改文件后缀名的经历
创建一个txt文本,将以上代码复制到文本中,保存修改文本后缀.txt为.bat(如图所示)
菜菜有点菜
2022/03/11
1.5K0
记一次批量修改文件后缀名的经历
python知识点100篇系列(5) -根据后缀名整理文件夹
平常用浏览器在互联网下载的文件,一般都在一个“下载”文件夹内,里面的文件什么格式的都有,看着就很乱;所以看能不能给整理一下,这个活python可以干;
JQ实验室
2024/09/18
2000
OSG加载倾斜摄影数据
ContextCapture(Smart3D)生成的倾斜摄影模型数据一般都形如如下组织结构:
charlee44
2020/05/08
3.4K0
windows下,c /c++实现磁盘扫描,结合配置文件,读取特定后缀文件目录代码
http://download.csdn.net/detail/wangyaninglm/8301303
流川疯
2019/01/18
1.8K0
Python修改文件后缀名[通俗易懂]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/09
6.4K0
C++ 利用 ifstream 和 ofstream 读取和修改文件内容
C 语言读取文件的时候很麻烦,C++ 相对来说有很方便的库可以用,方便的多,所以平常开发中推荐使用 C++ 中的库去读写文件。本文介绍如何利用 C++ 进行最简单的读写文件操作。
Frank909
2019/03/15
35.7K0
C++资源编译工具,用于将任何格式的文件编译成C++代码
resource_maker.zip          linux自带了一个名叫xxd的工具,带参数-i运行时,效果类似,如:xxd -i /bin/ls。
一见
2018/08/10
1.3K0
Node.js 中使用 ES6 中的 import / export 的方法大全
Node.js 中使用 ES6 中的 import / export 的方法大全
一个会写诗的程序员
2018/12/06
5.4K0
Node.js 中使用 ES6 中的  import / export 的方法大全
如何使用Python去除文件后缀名?
在Python中,我们常常需要操作文件,包括文件的读取、写入、重命名等操作。在文件操作中,我们经常会遇到需要去除文件后缀的问题。那么,Python如何去除文件后缀呢?本文我们将介绍如何使用Python来去除文件后缀。
霍格沃兹测试开发Muller老师
2024/03/15
1.5K0
全网最全upload-labs通关攻略(建议收藏)
Upload-labs是一个帮你总结所有上传漏洞类型的靶场,学习上传漏洞原理,复现上传漏洞必备靶场环境,玩起来吧!项目地址:https://github.com/c0ny1/upload-labs
网络安全自修室
2021/11/25
11.7K0
全网最全upload-labs通关攻略(建议收藏)
C/C++编程: 获取路径里的文件名称、后缀名
windows下使用C/C++编写一个方法,传入文件的完整路径,取出文件的基本名称,后缀名等数据。
DS小龙哥
2022/04/08
2.4K0
C/C++编程: 获取路径里的文件名称、后缀名
c++ 常用的遍历,删除,分割等等文件处理函数代码实现
原文链接:https://www.cnblogs.com/DOMLX/p/9622851.html
徐飞机
2018/09/30
1.1K0
python之tkinter进阶-批量修改文件后缀名
相信大家tkinter的基础已经打好了,那么接下来说一下tkinter关于文件操作的一些内容。大家都在windows操作过选择文件,选择或上传,一般是图片比较多。或下载的时候让你选择文件的路径,接下来就用tkinter实现一下文件选择批量修改文件后缀名。
找Bug
2022/07/22
1.7K0
python之tkinter进阶-批量修改文件后缀名
文件上传靶机实验记录
前端JS后缀名校验,通过审查元素发现onsubmit="return checkFile()”校验函数我们将其删除直接上传(浏览器禁用JS脚本也能上传,BURP抓包更改后缀名也能上传)webshell。
菜菜有点菜
2022/03/18
6.2K0
文件上传靶机实验记录
[C++]使用C++部署yolov10目标检测的tensorrt模型支持图片视频推理windows测试通过
【测试通过环境】 vs2019 cmake==3.24.3 cuda11.7.1+cudnn8.8.0 tensorrt==8.6.1.6 opencv==4.8.0
云未归来
2025/07/21
1000
[C++]使用C++部署yolov10目标检测的tensorrt模型支持图片视频推理windows测试通过
C/C++常见gcc编译链接错误解决方法
用“-Wl,-Bstatic”指定链接静态库,使用“-Wl,-Bdynamic”指定链接共享库,使用示例: -Wl,-Bstatic -lmysqlclient_r -lssl -lcrypto -Wl,-Bdynamic -lrt -Wl,-Bdynamic -pthread -Wl,-Bstatic -lgtest ("-Wl"表示是传递给链接器ld的参数,而不是编译器gcc/g++的参数。) 1) 下面是因为没有指定链接参数-lz(/usr/lib/libz.so,/usr/lib/libz.a ) /usr/local/mysql/lib/mysql/libmysqlclient.a(my_compress.c.o): In function `my_uncompress': /home/software/mysql-5.5.24/mysys/my_compress.c:122: undefined reference to `uncompress' /usr/local/mysql/lib/mysql/libmysqlclient.a(my_compress.c.o): In function `my_compress_alloc': /home/software/mysql-5.5.24/mysys/my_compress.c:71: undefined reference to `compress' 2) 下面是因为没有指定编译链接参数-pthread(注意不仅仅是-lpthraed) /usr/local/mysql/lib/mysql/libmysqlclient.a(charset.c.o): In function `get_charset_name': /home/zhangsan/mysql-5.5.24/mysys/charset.c:533: undefined reference to `pthread_once' 3) 下面这个是因为没有指定链接参数-lrt /usr/local/thirdparty/curl/lib/libcurl.a(libcurl_la-timeval.o): In function `curlx_tvnow': timeval.c:(.text+0xe9): undefined reference to `clock_gettime' 4) 下面这个是因为没有指定链接参数-ldl /usr/local/thirdparty/openssl/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_globallookup': dso_dlfcn.c:(.text+0x4c): undefined reference to `dlopen' dso_dlfcn.c:(.text+0x62): undefined reference to `dlsym' dso_dlfcn.c:(.text+0x6c): undefined reference to `dlclose' 5) 下面这个是因为指定了链接参数-static,它的存在,要求链接的必须是静态库,而不能是共享库 ld: attempted static link of dynamic object 如果是以-L加-l方式指定,则目录下必须有.a文件存在,否则会报-l的库文件找不到:ld: cannot find -lACE 6) GCC编译遇到如下的错误,可能是因为在编译时没有指定-fPIC,记住:-fPIC即是编译参数,也是链接参数 relocation R_x86_64_32S against `vtable for CMyClass` can not be used when making a shared object 7) 下面的错误表示gcc编译时需要定义宏__STDC_FORMAT_MACROS,并且必须包含头文件inttypes.h test.cpp:35: error: expected `)' before 'PRIu64' 8) 下面是因为在x86机器(32位)上编译没有指定编译参数-march=pentium4 ../../src/common/libmooon.a(logger.o): In function `atomic_dec_and_test': ../../include/mooon/sys/atomic_gcc.h:103: undefined reference to `__sync_sub_and_fetch_4' 9) 下列错误可能是因为多了个“}” error: expected d
一见
2018/08/10
8.1K0
4.5 C++ Boost 文件目录操作库
Boost 库是一个由C/C++语言的开发者创建并更新维护的开源类库,其提供了许多功能强大的程序库和工具,用于开发高质量、可移植、高效的C应用程序。Boost库可以作为标准C库的后备,通常被称为准标准库,是C标准化进程的重要开发引擎之一。使用Boost库可以加速C应用程序的开发过程,提高代码质量和性能,并且可以适用于多种不同的系统平台和编译器。Boost库已被广泛应用于许多不同领域的C++应用程序开发中,如网络应用程序、图像处理、数值计算、多线程应用程序和文件系统处理等。
王瑞MVP
2023/08/21
5890
nodejs实现批量修改文件内容 | 附断更红包
一番之前不是有一个网站吗,efonfihgint.imwork.net。但这是个二级域名,很多时候用起来不方便,自主性还是稍差了一点。
efonfighting
2020/02/21
4.1K0
nodejs实现批量修改文件内容 | 附断更红包
推荐阅读
相关推荐
springboot文件上传及虚拟路径设置
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验