Bootstrap

【虚幻】C++文件读写/创建/查找/删除

获取游戏目录

//   ../../UE4Projects/Map_Client/
FPaths::ProjectDir();

//   E:/UE4Projects/Map_Client/
FPaths::ConvertRelativePathToFull(FPaths::ProjectDir());
//  转换为Ue4文件地址
FPaths::NormalizeDirectoryName(FilePath);

//  转换为当前平台文件地址
FPaths::MakePlatformFilename(FilePath);

文件

//	查找文件
FString FilePath = FString("E:/Test.txt");
FPlatformFileManager::Get().GetPlatformFile().FileExists(*FilePath);

//	删除文件
FString FilePath = FString("E:/Test.txt");
FPlatformFileManager::Get().GetPlatformFile().DeleteFile(*FilePath);

文件夹-代码中若使用中文路径,将代码文件保存为UTF_8

//	查找文件夹
FString FilePath = FString("E:/Test/");
FPlatformFileManager::Get().GetPlatformFile().DirectoryExists(*FilePath);

//	创建文件夹
FString FilePath = FString("E:/Test/");
FPlatformFileManager::Get().GetPlatformFile().CreateDirectory(*FilePath);

//	删除文件夹-不可删除项目文件
FString FilePath = FString("E:/Test/");
FPlatformFileManager::Get().GetPlatformFile().DeleteDirectory(*FilePath);

//  删除文件夹和子文件-不可删除项目文件
FString FilePath = FString("E:/Test/");
FPlatformFileManager::Get().GetPlatformFile().DeleteDirectoryRecursively(*FilePath);

//  使用Windows删除文件,可删除项目文件
#include "AllowWindowsPlatformTypes.h"
#include <shellapi.h>
#include "HideWindowsPlatformTypes.h"

FString MoviesPath = GamePath + "Content/Movies";
FPaths::MakePlatformFilename(MoviesPath);
FString CmdStr = "/c rd /s/q " + MoviesPath;
ShellExecute(NULL, NULL, _T("cmd"), *CmdStr, NULL, SW_HIDE);

字符串读写

//保存字符串
FString Str = FString("Test\n");
FString FilePath = FString("E:/SaveStr.txt");
FFileHelper::SaveStringToFile(Str, *FilePath);

//读取字符串
FString Str;
FString FilePath = FString("E:/SaveStr.txt");
FFileHelper::LoadFileToString(Str, *FilePath);

//保存字符串数组
TArray<FString> StrArray;
FString FilePath = FString("E:/SaveStr.txt");
FFileHelper::SaveStringToFile(StrArray, *FilePath);

//读取字符串数组
TArray<FString> StrArray;
FString FilePath = FString("E:/SaveStr.txt");
FFileHelper::LoadFileToString(StrArray, *FilePath);

查找目录下的文件名

//	可选是否查找文件或者文件夹.
FString FilePath = FString("E:/Test/");
TArray<FString> StrArray;
IFileManager::Get().FindFiles(StrArray, *FilePath, true, true);

//	根据后缀查找文件名(.txt),如果为空,查找所有文件(不包含文件夹).
FString FilePath = FString("E:/Test/");
TArray<FString> StrArray;
IFileManager::Get().FindFiles(StrArray, *FilePath, TEXT(".txt"));
;