当前位置: 首页> 汽车> 维修 > UE5文件操作

UE5文件操作

时间:2025/7/8 12:06:30来源:https://blog.csdn.net/qq_26540577/article/details/139126544 浏览次数: 0次

       首先在虚幻引擎中创建UMyBlueprintFunctionLibrary类,可以在该类中写我们重复利用的功能,并且这些功能不依赖于特定的游戏对象,方便全局调用。

1.文件的读取和写入

	UFUNCTION(BlueprintCallable, Category = "File")static bool loadStringFromFile(FString filePath, FString& resultString);UFUNCTION(BlueprintCallable, Category = "File")static bool writeStringToFile(TArray<FString> saveFile, FString filePath);
bool UMyBlueprintFunctionLibrary::loadStringFromFile(FString filePath, FString& resultString)
{if (!filePath.IsEmpty()){if (FFileHelper::LoadFileToString(resultString, *filePath)){return true;}else{//error}}return false;
}bool UMyBlueprintFunctionLibrary::writeStringToFile(TArray<FString> saveFile, FString filePath)
{if (!filePath.IsEmpty()){if (FFileHelper::SaveStringArrayToFile(saveFile, *filePath)){return true;}else{//error}}return false;
}

2.获取文件名、后缀名、文件名

        

	UFUNCTION(BlueprintCallable, Category = "File")static FString GetFilePath(FString path);UFUNCTION(BlueprintCallable, Category = "File")static FString GetFileName(FString InPath,bool bRemovePath);UFUNCTION(BlueprintCallable, Category = "File")static FString GetFileExtension(FString InPath, bool bInCludeDot);
FString UMyBlueprintFunctionLibrary::GetFilePath(FString path)
{FString result;result = FPaths::GetPath(*path);return result;
}FString UMyBlueprintFunctionLibrary::GetFileName(FString InPath, bool bRemovePath)
{return FPaths::GetBaseFilename(*InPath,bRemovePath);
}FString UMyBlueprintFunctionLibrary::GetFileExtension(FString InPath, bool bInCludeDot)
{return FPaths::GetExtension(*InPath,bInCludeDot);
}

3.创建文件夹和删除文件夹

	UFUNCTION(BlueprintCallable, Category = "File")static void CreateFolder(FString FolderName);UFUNCTION(BlueprintCallable, Category = "File")static void DeleteFolder(FString FolderName);

  在cpp中引入FileManagerGeneric.h

#include "Runtime/Core/Public/HAL/FileManagerGeneric.h"
void UMyBlueprintFunctionLibrary::CreateFolder(FString FolderName)
{//FString path = FPaths::ProjectContentDir();FPlatformFileManager::Get().GetPlatformFile().CreateDirectoryTree(*FolderName);
}void UMyBlueprintFunctionLibrary::DeleteFolder(FString FolderName)
{//FString path = FPaths::ProjectContentDir();FPlatformFileManager::Get().GetPlatformFile().DeleteDirectoryRecursively(*FolderName);
}

4.文件的移动和查找

	UFUNCTION(BlueprintCallable, Category = "File")static bool MoveFileTo(FString To, FString From);UFUNCTION(BlueprintCallable, Category = "File")static TArray<FString> FindFileFolder(FString Path, FString Filter, bool Files, bool Directory);
bool UMyBlueprintFunctionLibrary::MoveFileTo(FString To, FString From)
{return IFileManager::Get().Move(*To,*From);
}TArray<FString> UMyBlueprintFunctionLibrary::FindFileFolder(FString Path, FString Filter, bool Files, bool Directory)
{TArray<FString> FilePathList;FilePathList.Empty();FFileManagerGeneric::Get().FindFilesRecursive(FilePathList, *Path, *Filter, Files, Directory);return FilePathList;
}

5.全部代码

h文件部分:

// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"
#include "Kismet/BlueprintFunctionLibrary.h"
#include "MyBlueprintFunctionLibrary.generated.h"/*** */
UCLASS()
class STUDYCODEPROJECT_API UMyBlueprintFunctionLibrary : public UBlueprintFunctionLibrary
{GENERATED_BODY()
public:UFUNCTION(BlueprintCallable, Category = "File")static bool loadStringFromFile(FString filePath, FString& resultString);UFUNCTION(BlueprintCallable, Category = "File")static bool writeStringToFile(TArray<FString> saveFile, FString filePath);UFUNCTION(BlueprintCallable, Category = "File")static FString GetFilePath(FString path);UFUNCTION(BlueprintCallable, Category = "File")static FString GetFileName(FString InPath,bool bRemovePath);UFUNCTION(BlueprintCallable, Category = "File")static FString GetFileExtension(FString InPath, bool bInCludeDot);UFUNCTION(BlueprintCallable, Category = "File")static void CreateFolder(FString FolderName);UFUNCTION(BlueprintCallable, Category = "File")static void DeleteFolder(FString FolderName);UFUNCTION(BlueprintCallable, Category = "File")static bool MoveFileTo(FString To, FString From);UFUNCTION(BlueprintCallable, Category = "File")static TArray<FString> FindFileFolder(FString Path, FString Filter, bool Files, bool Directory);
};

cpp文件部分:

// Fill out your copyright notice in the Description page of Project Settings.#include "MyBlueprintFunctionLibrary.h"
#include "Runtime/Core/Public/HAL/FileManagerGeneric.h"bool UMyBlueprintFunctionLibrary::loadStringFromFile(FString filePath, FString& resultString)
{if (!filePath.IsEmpty()){if (FFileHelper::LoadFileToString(resultString, *filePath)){return true;}else{//error}}return false;
}bool UMyBlueprintFunctionLibrary::writeStringToFile(TArray<FString> saveFile, FString filePath)
{if (!filePath.IsEmpty()){if (FFileHelper::SaveStringArrayToFile(saveFile, *filePath)){return true;}else{//error}}return false;
}FString UMyBlueprintFunctionLibrary::GetFilePath(FString path)
{FString result;result = FPaths::GetPath(*path);return result;
}FString UMyBlueprintFunctionLibrary::GetFileName(FString InPath, bool bRemovePath)
{return FPaths::GetBaseFilename(*InPath,bRemovePath);
}FString UMyBlueprintFunctionLibrary::GetFileExtension(FString InPath, bool bInCludeDot)
{return FPaths::GetExtension(*InPath,bInCludeDot);
}void UMyBlueprintFunctionLibrary::CreateFolder(FString FolderName)
{//FString path = FPaths::ProjectContentDir();FPlatformFileManager::Get().GetPlatformFile().CreateDirectoryTree(*FolderName);
}void UMyBlueprintFunctionLibrary::DeleteFolder(FString FolderName)
{//FString path = FPaths::ProjectContentDir();FPlatformFileManager::Get().GetPlatformFile().DeleteDirectoryRecursively(*FolderName);
}bool UMyBlueprintFunctionLibrary::MoveFileTo(FString To, FString From)
{return IFileManager::Get().Move(*To,*From);
}TArray<FString> UMyBlueprintFunctionLibrary::FindFileFolder(FString Path, FString Filter, bool Files, bool Directory)
{TArray<FString> FilePathList;FilePathList.Empty();FFileManagerGeneric::Get().FindFilesRecursive(FilePathList, *Path, *Filter, Files, Directory);return FilePathList;
}

关键字:UE5文件操作

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: