个人使用UE4 C++ 函数库(文件读写)

个人使用UE4 C++ 函数库(文件读写)

include

#include "Runtime/Core/Public/HAL/FileManagerGeneric.h"

.h

	//读取文本文档 无默认路径
	UFUNCTION(BlueprintCallable, Category = "Read&Write Files")
	   static FString ReadFileNotPure(FString Dir);
	   
	//写入文本文档 无默认路径
	UFUNCTION(BlueprintCallable, Category = "Read&Write Files")
	   static bool WriteFile(FString FileName, FString content);
	   
	//读取文本文档 无默认路径 纯函数
	UFUNCTION(BlueprintPure, Category = "Read&Write Files")
	   static FString ReadFile(FString Dir);
	   
	//查找文件 纯函数
	UFUNCTION(BlueprintPure, Category = "Read&Write Files")
	   static TArray<FString> FindFiles(FString Path, FString Filter, bool Files, bool Directory);
	   
	//删除文件
	UFUNCTION(BlueprintCallable, Category = "Read&Write Files")
	   static bool DeleteFile(FString FilePath);
	
	/***
	* bool& isNull: "&"表示其为输出值,在蓝图中,如果想要输出多个值,可以使用其创造一个变量,并在.cpp中赋值
	***/
	//查找文件
	UFUNCTION(BlueprintCallable, Category = "Read&Write Files")
	   static void FindFilesNotPure(FString Path, FString Filter, bool isFiles, bool isDirectory, bool& isNull, TArray<FString>& Files);
	   
   //创建文件夹
	UFUNCTION(BlueprintCallable, Category = "Read&Write Files")
	   static bool CreateDic(FString filePath);
	   
   //删除文件夹
	UFUNCTION(BlueprintCallable, Category = "Read&Write Files")
	   static bool DeleteDic(FString filePath);

	//保存数据 第一行字符 + 字符串数组
	UFUNCTION(BlueprintCallable, Category = "Read&Write Files")
	   static bool SaveData(FString filePath, FString FirstLine,TArray<FString> TextArray);

.cpp

/***
* UMyBlueprintFunctionLibrary:类名
***/

FString UMyBlueprintFunctionLibrary::ReadFileNotPure(FString Dir)
{
   FString Result;
   FFileHelper::LoadFileToString(Result, *Dir);
   return Result;
}

bool UMyBlueprintFunctionLibrary::WriteFile(FString FileName, FString content)
{
   bool result;
   result = FFileHelper::SaveStringToFile(content, *FileName);
   return result;
}

FString UMyBlueprintFunctionLibrary::ReadFile(FString Dir)
{
   FString Result;
   FFileHelper::LoadFileToString(Result, *Dir);
   return Result;
}

TArray<FString> UMyBlueprintFunctionLibrary::FindFiles(FString Path, FString Filter, bool Files, bool Directory)
{
   TArray<FString> FilePathList;
   FilePathList.Empty();
   FFileManagerGeneric::Get().FindFilesRecursive(FilePathList, *Path, *Filter, Files, Directory);
   return FilePathList;
}

void UMyBlueprintFunctionLibrary::FindFilesNotPure(FString Path, FString Filter, bool isFiles, bool isDirectory,bool& isNull, TArray<FString>& Files)
{
   TArray<FString> FilePathList;
   FilePathList.Empty();
   FFileManagerGeneric::Get().FindFilesRecursive(FilePathList, *Path, *Filter, isFiles, isDirectory);
   if (FilePathList.Num()>0)
   {
      isNull= 1;
   }
   else
   {
      isNull = 0;
   }
}

bool UMyBlueprintFunctionLibrary::CreateDic(FString filePath)
{
   IPlatformFile& PlatformFile = FPlatformFileManager::Get().GetPlatformFile();
   return PlatformFile.CreateDirectory(*filePath);
}

bool UMyBlueprintFunctionLibrary::DeleteDic(FString filePath)
{
   IPlatformFile& PlatformFile = FPlatformFileManager::Get().GetPlatformFile();
   return PlatformFile.DeleteDirectory(*filePath);
   
}

bool UMyBlueprintFunctionLibrary::DeleteFile(FString FilePath)
{
   return IFileManager::Get().Delete(*FilePath);
}

bool UMyBlueprintFunctionLibrary::SaveData(FString FilePath, FString FirstLine, TArray<FString> TextArray)
{
   bool success;
   if (FirstLine.Len()>0)
      TextArray.Insert(FirstLine,0);
   success = FFileHelper::SaveStringArrayToFile(TextArray,*FilePath,FFileHelper::EEncodingOptions::ForceUTF8);
   return success;
}

在这里插入图片描述
在这里插入图片描述

注意:函数会在对应路径创造一个同名文件,若已有文件,则会覆盖现有文件,因此也可以选择使用时间命名
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玉小兽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值