如何使用C++的FString在UE5中从路径'D:\Unreal Engine Project\Package'中提取出仅'Package'部分?
时间: 2024-10-25 19:16:20 浏览: 28
在 Unreal Engine (UE5) 中,虽然官方推荐使用 UE5 的内置字符串处理功能,但它并未直接提供类似 C++ `std::wstring` 的 `FString` 类型。不过,如果你在UE5里依然想使用类似于C++的标准库 `FString` 的操作,你可以先将路径转换为 `TCHAR` 或 `TChar*` 类型,然后使用标准函数如 `_tcscat`, `_tcschr`, 和 `_tcsrchr` 来处理。
以下是一个示例步骤:
```cpp
#include "CoreMinimal.h"
#include "Misc/Paths.h"
// 获取路径
const FString& path = TEXT("D:\\Unreal Engine Project\\Package");
// 将FString转换为宽字符指针
TCHAR* filePath = *path.Buffer(); // 这行会复制整个字符串到一个临时宽字符数组
// 查找最后一个反斜杠
size_t lastSlashIndex = _tcsrchr(filePath, TEXT('\\')) - filePath; // 注意减去宽字符数组中的第一个元素
// 如果找不到反斜杠,则表示路径就是'Package'
if (lastSlashIndex == TCHAR_MAX)
{
FString packagePath(filePath);
}
else
{
// 从最后一个反斜杠加一的位置开始截取
FString packagePath(filePath + lastSlashIndex + 1); // 包含反斜杠的部分,但不包含它本身
}
// 删除结果字符串前后的空格
packagePath.Trim();
// 输出或使用packagePath变量
//
阅读全文