UE4 源码 创建删除目录及文件夹

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

//  使用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 FilePath = FString("E:/Test.txt");
FPlatformFileManager::Get().GetPlatformFile().FileExists(*FilePath);

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

获取游戏目录
//   ../../UE4Projects/Map_Client/
FPaths::ProjectDir();

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

//  转换为当前平台文件地址
FPaths::MakePlatformFilename(FilePath);
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值