UE4中文件读写、创建、查找、删除
创建游戏目录文件夹
void CreateFolder(FString _path)
{
_path = FPaths::GameDir() / *_path;
_path = FPaths::ConvertRelativePathToFull(*_path);
FPlatformFileManager::Get().GetPlatformFile().CreateDirectoryTree(*_path);
}
创建绝对路径文件夹
void CreateFolder(FString _path)
{
FPlatformFileManager::Get().GetPlatformFile().CreateDirectoryTree(*_path);
}
删除文件目录
void DeleteFolder(FString _path)
{
_path = FPaths::GameDir() / *_path;
_path = FPaths::ConvertRelativePathToFull(*_path);
FPlatformFileManager::Get().Get().GetPlatformFile().DeleteDirectoryRecursively(*_path);
}
获取文件
TArray<FString> GetFolderFiles(FString _path)
{
TArray<FString> files;
FPaths::NormalizeDirectoryName(_path);
IFileManager& FileManager = IFileManager::Get();
FString FinalPath = _path / TEXT("*");
FileManager.FindFiles(files, *FinalPath, true, true);
return files;
}
判断文件或文件夹是否存在
FPlatformFileManager::Get().GetPlatformFile().DirectoryExists(*_path)
FPaths::DirectoryExists(_Path)
字符串读写
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);
文件夹
注:代码中若使用中文路径,将代码文件保存为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);
#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 FilePath = FString("E:/Test.txt");
FPlatformFileManager::Get().GetPlatformFile().FileExists(*FilePath);
FString FilePath = FString("E:/Test.txt");
FPlatformFileManager::Get().GetPlatformFile().DeleteFile(*FilePath);
获取游戏目录
FPaths::ProjectDir();
FPaths::ConvertRelativePathToFull(FPaths::ProjectDir());
FPaths::NormalizeDirectoryName(FilePath);
FPaths::MakePlatformFilename(FilePath);