引擎系统相关类

正则表达式

正则表达式是对字符串操作的一种逻辑公式,用事先定义好的一些特殊字符组成“规则字符串”用以表达对字符串的一种过滤逻辑:

添加头文件:

#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 用于路径处理相关的类:

  1. 具体路径类:FPaths::GameDir() 可以获取到游戏根目录。
  2. 工具类:FPaths::FileExists()用于判断一个文件是否存在。
  3. 路径转换类: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  文件是否只读

 

posted @ 2019-07-31 10:03  CodeWithMe  阅读(461)  评论(0)    收藏  举报