UE4 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);

文件夾-中文路徑無法識別,數字可識別

//	查找文件夾
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"));
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章