专栏首页acoolgiser_zhuanlanOSG C++ 获取文件后缀 OSG修改文件后缀名

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

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

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

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

/** 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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • C#如何定义全局变量,不同的子窗体和类都可以访问

    首先要说明,这里区别于某一个具体窗体或者类中的全局变量,可以在该窗体包含的控件的事件以及该窗体中定义的方法和类访问,这种全局变量不能在别的窗体或者类中访问。

    acoolgiser
  • “类MainForm可以进行设计,但不是文件中的第一个类”

    C#允许在某命名空间下的一个代码文件中定义多个类,比如在一个主窗体MainForm的cs文件中除了定义窗体本身的类外,还可以定义全局变量的类,如下:

    acoolgiser
  • QT QJsonObject 与 QJsonArray 中insert()方法 插入值的顺序问题

    本文链接:https://blog.csdn.net/acoolgiser/article/details/99442177

    acoolgiser
  • opencv(一):Directory(遍历目录下的文件(夹))

    opencv 工具类 Directory opencv2 提供了一个 Directory 工具类来帮助读取文件夹中的文件名,这还是挺方便的,因为 目前常用的 c...

    ke1th
  • 照片大变活人!华盛顿大学&amp;FB最新成果:平面人物秒变3D模式,还会动

    哈利·波特里有项魔法“黑科技”很让我等麻瓜羡慕——照片会动甚至会从平面照片中伸出头或者手和你互动。

    新智元
  • uva-----11292 The Dragon of Loowater

    Problem C: The Dragon of Loowater Once upon a time, in the Kingdom of Loowater, ...

    Gxjun
  • UVA 11292 Dragon of Loowater(简单贪心)

    Problem C: The Dragon of Loowater Once upon a time, in the Kingdom of Loowater, ...

    Angel_Kitty
  • 十大革命性理论(Top 10 revolutionary scientifictheories)中英版(19k字)

    本篇《十大革命性理论》(Top 10 revolutionary scientific theories |Science News)中英文对照版AB,把原文倒...

    秦陇纪
  • 袖珍分布式系统(一)

    本文是Distributed systems for fun and profit的第一部分,本文是阅读该文后的一些记录。

    zhuanxu
  • Instant Messaging at LinkedIn: Scaling to 10000 of Connections

    We recently introduced Instant Messaging on LinkedIn, complete with typing indic...

    首席架构师智库

扫码关注云+社区

领取腾讯云代金券