引擎系统相关类
正则表达式
正则表达式是对字符串操作的一种逻辑公式,用事先定义好的一些特殊字符组成“规则字符串”用以表达对字符串的一种过滤逻辑:
添加头文件:
#include "Regex.h"
头文件放在 Core 模块里,不需要额外在 Build.cs里添加。
FRegexPattern TestPattern(TEXT("\^d{5,12}"));
FRegexMatcher 主要作用是驱动正则表达式的运行,FRegexPattern 只是一个表达式,只有一个构造函数。
FindNext() 函数,返回一个 bool 值,表示是否查找到匹配表示式的内容:
FString TextStr("ABCDEFGHIJKLMN"); FRegexPattern TestPattern(TEXT("C.+H")); FRegexPattern TestMatcher(TestPattern,TextStr); if(TestMatcher.FindNext()){ UE_LOG(Mylog,Warning,TEXT("找到匹配内容 %d - %d"),TestMatcher.GetMatchBeginning(),TestMatcher.GetMatchEnding());//输出 找到匹配内容 }
FPaths 类的使用
FPaths 用于路径处理相关的类:
- 具体路径类:FPaths::GameDir() 可以获取到游戏根目录。
- 工具类:FPaths::FileExists()用于判断一个文件是否存在。
- 路径转换类:FPaths::ConvertRelativePathToFull()用于将相对路径转换成为绝对路径。
XML 与 JSON
XMLParser 模块提供中两个类解析 XML 数据:FastXML 和 FXmlFile。
解析XML:
FString xmlFilePath = FPaths::GamePluginsDir()/TEXT("SimpleWindow/Resources/Test.xml"); FXmlFile* xml = new FXmlFile(); xml -> LoadFile(xmlFilePath); FXmlNode* RootNode = xml->GetRootNode(); FString from_content = RootNode -> FindChildNode("from")->GetContent(); FString note_name = RootNode -> GetAttribute("name"); TArray<FXmlNode*> list_node = RootNode -> FindChildNode("list")->GetChildrenNodes();
解析JSON:
TArray<TSharedPtr<FJsonValue>> JsonParsed; TSharedRef<TJsonReader<TCHAR>>JsonReader = TJsonReaderFactory<TCHAR>::Create(JsonStr); bool BFlag = FJsonSerializer::Deserialize(JsonReader,JsonParsed); { FString FStringAuthor = JsonParsed[0] -> AsObject() ->GetStringFiled("author"); }
文件读写与访问
提供了与平台无关的文件读写与访问接口:FPlatfromFileManager 。该类定义于头文件 FPlatfromFileManager.h 中,所属模块为 Core 。
调用:
FPlatformFileManager::Get()->GetPlatformFile();
能够获得一个 IPlatformFile 类型的引用。
以下文件获得函数调用的具体参数信息:
\Engine\Source\Runtime\Core\Public\GenericPlatform\GenericPlatformFile.h
常用的函数:
拷贝函数 提供文件目录和文件的拷贝操作:
CopyDirectoryTree 递归拷贝某个目录
CopFile 拷贝当前文件
创建函数 提供创建文件和目录的操作,目录创建成功或者目录已经存在都会返回真:
CreateDirectory 创建目录
CreateDirectoryTree 创建一个目录树,即给定一个路径字符串,如果对应路径的父目录不存在,也会被创建出来
删除函数 删除指定目录或文件,成功删除返回真,否则返回失败:
DeleteDirectory 删除指定目录
DeleteDirectoryRecursively 递归删除指定目录
DeleteFile 删除指定文件
移动函数 只有一个函数MoveFile,在移动文件时用。
属性函数 提供对文件、目录的属性访问操作:
DirectoryExists 检查文件目录是否存在
FileExists 检查文件是否存在
GetStateData 获取文件状态信息,返回FFileStatData类型对象:
| 属性名 | 类型 | 含义 |
| AccessTime | FDateTime | 上次访问时间。如果无效则返回FDataTime::MinValue |
| bIsDirectory | bool | 是否是路径 |
| bIsReadOnly | bool | 是否是只读 |
| CreationTime | FDateTime | 返回文件的创建时间 |
| FileSize | int64 | 返回文件大小,单位为byte,如果文件大小未知返回-1 |
| ModificationTime | FDateTime | 返回文件的上次修改时间,如果无效返回Fdate-Time::MinValue |
GetAccessTimeStamp 获取当前文件上一次访问的时间
SetTimeStamp 设置文件的修改时间
FileSize 获取文件大小,如果文件不存在返回-1
IsReadOnly 文件是否只读

浙公网安备 33010602011771号