做网站较好的框架,快抖霸屏乐云seo,怎样设计一个网站,做网站要偶数首先在虚幻引擎中创建UMyBlueprintFunctionLibrary类#xff0c;可以在该类中写我们重复利用的功能#xff0c;并且这些功能不依赖于特定的游戏对象#xff0c;方便全局调用。
1.文件的读取和写入 UFUNCTION(BlueprintCallable, Category File)static bool lo… 首先在虚幻引擎中创建UMyBlueprintFunctionLibrary类可以在该类中写我们重复利用的功能并且这些功能不依赖于特定的游戏对象方便全局调用。
1.文件的读取和写入 UFUNCTION(BlueprintCallable, Category File)static bool loadStringFromFile(FString filePath, FString resultString);UFUNCTION(BlueprintCallable, Category File)static bool writeStringToFile(TArrayFString 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(TArrayFString 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 TArrayFString FindFileFolder(FString Path, FString Filter, bool Files, bool Directory);
bool UMyBlueprintFunctionLibrary::MoveFileTo(FString To, FString From)
{return IFileManager::Get().Move(*To,*From);
}TArrayFString UMyBlueprintFunctionLibrary::FindFileFolder(FString Path, FString Filter, bool Files, bool Directory)
{TArrayFString 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(TArrayFString 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 TArrayFString 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.hbool UMyBlueprintFunctionLibrary::loadStringFromFile(FString filePath, FString resultString)
{if (!filePath.IsEmpty()){if (FFileHelper::LoadFileToString(resultString, *filePath)){return true;}else{//error}}return false;
}bool UMyBlueprintFunctionLibrary::writeStringToFile(TArrayFString 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);
}TArrayFString UMyBlueprintFunctionLibrary::FindFileFolder(FString Path, FString Filter, bool Files, bool Directory)
{TArrayFString FilePathList;FilePathList.Empty();FFileManagerGeneric::Get().FindFilesRecursive(FilePathList, *Path, *Filter, Files, Directory);return FilePathList;
}