国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

史上最全面的UE4 文件操作,打開,讀、寫,增、刪、改、查

這篇具有很好參考價(jià)值的文章主要介紹了史上最全面的UE4 文件操作,打開,讀、寫,增、刪、改、查。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、前期操作

創(chuàng)建一個(gè)C++項(xiàng)目,并且創(chuàng)建一個(gè)C++藍(lán)圖庫(kù)函數(shù),并且加入頭文件

#include "HAL/PlatformFilemanager.h"
#include "Misc/FileHelper.h"
#include "Misc/Paths.h"
#include "Developer/DesktopPlatform/Public/DesktopPlatformModule.h"
#include "Developer/DesktopPlatform/Public/IDesktopPlatform.h"
#include "Runtime/Core/Public/HAL/FileManagerGeneric.h"

史上最全面的UE4 文件操作,打開,讀、寫,增、刪、改、查

?二、打開文件

UFUNCTION(BlueprintCallable, DisplayName = "OpenFile", Category = "File")
	   static TArray<FString> OpenFile();
TArray<FString> UGenericArrayLibrary::OpenFile()
{
	TArray<FString> FilePath; //選擇文件路徑
	FString fileType = TEXT("*.*"); //過濾文件類型
	FString defaultPath = FPaths::ConvertRelativePathToFull(FPaths::ProjectDir()); //文件選擇窗口默認(rèn)開啟路徑
	IDesktopPlatform* DesktopPlatform = FDesktopPlatformModule::Get();
	bool bSuccess = DesktopPlatform->OpenFileDialog(nullptr, TEXT("打開文件"), defaultPath, TEXT(""), *fileType, EFileDialogFlags::None, FilePath);

	for (auto& name : FilePath)
	{
		UE_LOG(LogTemp, Warning,
			TEXT("%s"), *name);
	}
	if (bSuccess)
	{
		//文件選擇成功,文件路徑 path 
		UE_LOG(LogTemp,Warning,TEXT("Success"));
	}
	return FilePath;
}

三、讀取和寫入文件(字符串)

//讀取文件(字符串)
	UFUNCTION(BlueprintCallable, DisplayName = "ReadFile", Category = "File")
		static FString ReadFile(FString path);
//寫入文件(字符串)
	UFUNCTION(BlueprintCallable, DisplayName = "WriteFile", Category = "File")
		static bool WriteFile(FString saveFile,FString path);
FString UGenericArrayLibrary::ReadFile(FString path)
{
	FString resultString;
	FFileHelper::LoadFileToString(resultString,*path);
	return resultString;
}
///
bool UGenericArrayLibrary::WriteFile(FString saveFile,FString path)
{
	bool success;
	success = FFileHelper::SaveStringToFile(saveFile,*path);
	return success;
}

史上最全面的UE4 文件操作,打開,讀、寫,增、刪、改、查

?四、讀取和寫入字符數(shù)組

/讀取文件(字符數(shù)組)
	UFUNCTION(BlueprintCallable, DisplayName = "ReadFileArray", Category = "File")
		static TArray<FString> ReadFileArray(FString path);
	//寫入文件(字符數(shù)組)
	UFUNCTION(BlueprintCallable, DisplayName = "WriteFileArray", Category = "File")
		static bool WriteFileArray(TArray<FString> saveFile,FString path);
TArray<FString> UGenericArrayLibrary::ReadFileArray(FString path)
{
	TArray<FString> results;
	FFileHelper::LoadFileToStringArray(results, *path);
	return results;
}

bool UGenericArrayLibrary::WriteFileArray(TArray<FString> saveFile, FString path)
{
	return FFileHelper::SaveStringArrayToFile(saveFile,*path);
}

史上最全面的UE4 文件操作,打開,讀、寫,增、刪、改、查

五、 獲取文件路徑,獲取文件名,獲取文件后綴

	//獲取文件所在路徑
	UFUNCTION(BlueprintCallable, DisplayName = "Get FilePath", Category = "File")
		static FString GetFilePath(FString path);
	//獲取文件名,不帶后綴
	UFUNCTION(BlueprintCallable, DisplayName = "GetFileName", Category = "File")
		static FString GetFileName(FString InPath, bool bRemovePath);
	//獲取文件后綴
	UFUNCTION(BlueprintCallable, DisplayName = "GetFileExtension", Category = "File")
		static FString GetFileExtension(FString InPath, bool bIncludeDot);
FString UGenericArrayLibrary::GetFilePath(FString path)
{
	FString Result;
	Result = FPaths::GetPath(*path);
	return Result;
}

FString UGenericArrayLibrary::GetFileName(FString InPath, bool bRemovePath)
{
	return FPaths::GetBaseFilename(*InPath,bRemovePath);
}

FString UGenericArrayLibrary::GetFileExtension(FString InPath, bool bIncludeDot)
{
	return FPaths::GetExtension(*InPath,bIncludeDot);
}

史上最全面的UE4 文件操作,打開,讀、寫,增、刪、改、查

六、增加一個(gè)文件夾?和刪除一個(gè)文件夾

//創(chuàng)建一個(gè)文件夾
	UFUNCTION(BlueprintCallable, DisplayName = "CreateFolder", Category = "File")
		static void CreatFolder(FString FolderName);
//刪除一個(gè)文件夾
	UFUNCTION(BlueprintCallable, DisplayName = "DeleteFolder", Category = "File")
		static void DeleteFolder(FString FolderName);
void UGenericArrayLibrary::CreatFolder(FString FolderName)
{
	FString Path = FPaths::ProjectDir()/ *FolderName;
	Path = FPaths::ConvertRelativePathToFull(*Path);
	FPlatformFileManager::Get().GetPlatformFile().CreateDirectoryTree(*Path);
}


void UGenericArrayLibrary::DeleteFolder(FString FolderName)
{
	FString Path = FPaths::ProjectDir() / *FolderName;
	Path = FPaths::ConvertRelativePathToFull(*Path);
	FPlatformFileManager::Get().Get().GetPlatformFile().DeleteDirectoryRecursively(*Path);
}

史上最全面的UE4 文件操作,打開,讀、寫,增、刪、改、查

?七、移動(dòng)文件夾

//移動(dòng)文件
	UFUNCTION(BlueprintCallable, Category = "MoveFileTo")
		static bool MoveFileTo(FString To, FString From);
bool UGenericArrayLibrary::MoveFileTo(FString To, FString From)
{

	return IFileManager::Get().Move(*To, *From);
}

八、查找文件夾

//查找文件目錄下的所有文件
	UFUNCTION(BlueprintCallable, DisplayName = "FindFolder", Category = "File")
		static TArray<FString> FindFolder(FString Path, FString Filter, bool Files, bool Directory);
	//查找文件目錄下所有文件無法刪選查找
	UFUNCTION(BlueprintCallable, DisplayName = "GetFolderFiles", Category = "File")
		static TArray<FString> GetFolderFiles(FString Path);
TArray<FString> UGenericArrayLibrary::FindFolder(FString Path, FString Filter, bool Files, bool Directory)
{
	TArray<FString> FilePathList;
	FilePathList.Empty();
	FFileManagerGeneric::Get().FindFilesRecursive(FilePathList, *Path, *Filter, Files, Directory);
	return FilePathList;

}
//


TArray<FString> UGenericArrayLibrary::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;
}

史上最全面的UE4 文件操作,打開,讀、寫,增、刪、改、查文章來源地址http://www.zghlxwxcb.cn/news/detail-407210.html

到了這里,關(guān)于史上最全面的UE4 文件操作,打開,讀、寫,增、刪、改、查的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • UE4無法編譯項(xiàng)目。是否要在Visual Studio中打開

    一開始是沒裝Visual Studio。安裝完成后想創(chuàng)建C++項(xiàng)目出現(xiàn)如下報(bào)錯(cuò)。 無法編譯該項(xiàng)目。要在Visual Studio中打開它嗎? Running E:/Epic Games/UE_4.27/Engine/Binaries/DotNET/UnrealBuildTool.exe Development Win64 -Project=\\\"E:/Epic Games/UE_4.27/UnrealProjects/我的項(xiàng)目4/我的項(xiàng)目4.uproject\\\" -TargetType=Editor -Progress -NoE

    2024年02月03日
    瀏覽(19)
  • @EnableWebMvc注解讓swagger-ui.html無法打開404報(bào)錯(cuò)問題及其解決方案(史上最全最詳細(xì))

    @EnableWebMvc注解讓swagger-ui.html無法打開404報(bào)錯(cuò)問題及其解決方案(史上最全最詳細(xì))

    在工作中,通過Swagger2對(duì)項(xiàng)目的controller進(jìn)行配置,以便于用戶測(cè)試restful服務(wù)接口提高開發(fā)效率。 但是今天卻出現(xiàn)了一個(gè)讓我匪夷所思的問題就是在配置類里面加上@EnableWebMvc注解后(開啟web配置支持)啟動(dòng)項(xiàng)目 發(fā)現(xiàn)訪問Swagger的ui界面404 這個(gè)我就奇怪了,然后我嘗試的把@Ena

    2023年04月17日
    瀏覽(22)
  • IDEA打開java項(xiàng)目后里面的java文件不能運(yùn)行

    IDEA打開java項(xiàng)目后里面的java文件不能運(yùn)行

    問題如圖,IDEA打開java項(xiàng)目后里面的java文件不能運(yùn)行,而且文件圖標(biāo)全部變成了 普通文件 的圖標(biāo) Project Structure - Modules - Import Module 選擇pom.xml文件 點(diǎn)擊后雖然左側(cè)沒有顯示,但是點(diǎn)擊右下角“OK”就可以。 然后給src設(shè)置為Sources目錄: 最后回到代碼頁(yè)面就發(fā)現(xiàn)文件已經(jīng)變成

    2024年02月06日
    瀏覽(19)
  • UE4/5關(guān)于數(shù)字人MetaHuman打包項(xiàng)目后,打開游戲發(fā)生的關(guān)于Assertion failed: CastResult或者fatal error報(bào)錯(cuò)

    目錄 筆者的打包經(jīng)歷 該方法不一定成功,但總得試試。 解決方法: 本來筆者因?yàn)楦鞣N各樣的盜版原因,打算將本文放置在VIP的,但考慮到廣大人士可能和筆者一樣發(fā)生這種問題而無法解決,便決定還是開把傘。 Assertion failed: CastResult或者fatal error的報(bào)錯(cuò)是在打包成功后,再

    2024年02月15日
    瀏覽(31)
  • < Python全景系列-4 > 史上最全文件類型讀寫庫(kù)大盤點(diǎn)!什么?還包括音頻、視頻?

    歡迎來到我們的系列博客《Python全景系列》!在這個(gè)系列中,我們將帶領(lǐng)你從Python的基礎(chǔ)知識(shí)開始,一步步深入到高級(jí)話題,幫助你掌握這門強(qiáng)大而靈活的編程語(yǔ)言! 本文系列第四篇,介紹史上最全PYTHON文件類型讀寫庫(kù)大盤點(diǎn)!包含常用和不常用的大量文件格式!文本、音頻

    2024年02月05日
    瀏覽(26)
  • UE4/5多人游戲詳解(二、通過OnlineSubsystem和OnlineSubsystemSteam連接steam,如實(shí)現(xiàn)在steam類游戲里面shift+tab打開steam的彈窗)

    UE4/5多人游戲詳解(二、通過OnlineSubsystem和OnlineSubsystemSteam連接steam,如實(shí)現(xiàn)在steam類游戲里面shift+tab打開steam的彈窗)

    目錄 IP地址 OnlineSubsystem 插件打開 模塊加載 Config修改 Cpp 測(cè)試: 在之前的文章中,我們講解了在同一個(gè)WiFi下相互連接的制作。 但是我們并不只想在同一個(gè)本地連接,我們想要的是在不同的WiFi下一起玩游戲。 所以我們先來講解一下ip地址: 現(xiàn)在在同一個(gè)WiFi下,3個(gè)電腦的ip地

    2024年02月15日
    瀏覽(21)
  • 【UE Sequencer系列】01-前期準(zhǔn)備

    【UE Sequencer系列】01-前期準(zhǔn)備

    新建一個(gè)工程 在虛幻商城中將我們需要的三種資產(chǎn)導(dǎo)入到新建的工程中 打開工程可以看到導(dǎo)入的資產(chǎn) 新建兩個(gè)文件夾,一個(gè)用來存放音頻,一個(gè)用來存放所有的Sequencer 導(dǎo)入音頻(只支持wav格式) 選中聲波,創(chuàng)建一個(gè)sound cue 打開“Forge”關(guān)卡 改變視口布局 第一個(gè)視口選擇“

    2023年04月09日
    瀏覽(27)
  • Python史上最全種類數(shù)據(jù)庫(kù)操作方法,你能想到的數(shù)據(jù)庫(kù)類型都在里面!甚至還有云數(shù)據(jù)庫(kù)!

    本文將詳細(xì)探討如何在Python中連接全種類數(shù)據(jù)庫(kù)以及實(shí)現(xiàn)相應(yīng)的CRUD(創(chuàng)建,讀取,更新,刪除)操作。我們將逐一解析連接MySQL,SQL Server,Oracle,PostgreSQL,MongoDB,SQLite,DB2,Redis,Cassandra,Microsoft Access,ElasticSearch,Neo4j,InfluxDB,Snowflake,Amazon DynamoDB,Microsoft Azure CosMos DB數(shù)

    2024年02月12日
    瀏覽(47)
  • 如何將skp文件中的模型導(dǎo)入到UE4中

    如何將skp文件中的模型導(dǎo)入到UE4中

    首先,skp文件是不能直接導(dǎo)入到UE4中的。 解決方法:用SketchUp(草圖大師)打開skp文件,在SketchUp中將模型轉(zhuǎn)換成fbx格式,然后再將模型導(dǎo)入U(xiǎn)E4中 目錄 1.打開skp文件 2.將skp文件導(dǎo)出為fbx格式 3.將fbx文件導(dǎo)入U(xiǎn)E4中 1.打開skp文件 ????????略(雙擊打開即可) 2.將skp文件導(dǎo)出為

    2024年02月04日
    瀏覽(19)
  • UE4 初始化全局著色器庫(kù)所需的游戲文件缺失

    UE4 初始化全局著色器庫(kù)所需的游戲文件缺失

    ? 解決的方法是打包的主場(chǎng)景牽扯到的子場(chǎng)景放到同一個(gè)文件夾下 ? ? 如果移動(dòng)了場(chǎng)景,會(huì)出現(xiàn)一個(gè)同名的殼(node),如果還改名了即使在一個(gè)文件夾下也會(huì)導(dǎo)致這個(gè)問題,解決辦法是移動(dòng)完之后右鍵Content點(diǎn)擊fix up···

    2024年02月11日
    瀏覽(302)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包