UE4 根据后缀名进行文件遍历 读写ini文件

有时候我们需要遍历文件夹下面的某种后缀名的文件,比如ini,然后读取。UE4已经帮我们写好了工具类,所以,我们调用就好了。哭哭


头文件引用: #include "FileManagerGeneric.h"

我做成了蓝图节点方便调用。

H:

/**
	* @param app      Node name
	* @param key      Key name
	* @param filename full filename
	*/
	UFUNCTION(BlueprintCallable, meta = (DisplayName = "Get Item Int", Keywords = "TCFunctionsLibrary sample"), Category = "TC Functions Library")
    static int GetItemInt(FString app, FString key, FString filename);

	/**
	* @param app      Node name
	* @param key      Key name
	* @param filename full filename
	*/
	UFUNCTION(BlueprintCallable, meta = (DisplayName = "Get Item Double", Keywords = "TC Functions Library"), Category = "TC Functions Library")
	static FString GetItemDouble(FString app, FString key, FString filename);

	/**
	* @param app      Node name
	* @param key      Key name
	* @param lpstring The string to write 
	* @param filename full filename
	*/
	UFUNCTION(BlueprintCallable, meta = (DisplayName = "Set Item String", Keywords = "TC Functions Library"), Category = "TC Functions Library")
	static bool SetItemString(FString app, FString key, FString lpstring, FString filename);
	
	/**
	* @param Filename  The Name of Process ready to kill
	*/
	UFUNCTION(BlueprintCallable, meta = (DisplayName = "Kill Process By Name", Keywords = "TC Functions Library"), Category = "TC Functions Library")
	static bool KillProcess(FString Filename);


	UFUNCTION(BlueprintCallable, meta = (DisplayName = "List Files In Directory", Keywords = "TC Functions Library"), Category = "TC Functions Library")
	static TArray<FString> ListFilesInFolder(FString Directory,FString FilesSuffix);

CPP:
int UTCFunctionsLibraryBPLibrary::GetItemInt(FString app, FString key, FString filename)
{
	int Resualt;
	string str_app(TCHAR_TO_UTF8(*app));
	string str_key(TCHAR_TO_UTF8(*key));
	string str_filename(TCHAR_TO_UTF8(*filename));

	Resualt = GetPrivateProfileIntA(str_app.c_str(), str_key.c_str(), 0, str_filename.c_str());
	return Resualt;
}

FString UTCFunctionsLibraryBPLibrary::GetItemDouble(FString app, FString key, FString filename)
{
	char temp[32];
	string str_app(TCHAR_TO_UTF8(*app));
	string str_key(TCHAR_TO_UTF8(*key));
	string str_filename(TCHAR_TO_UTF8(*filename));
	GetPrivateProfileStringA(str_app.c_str(), str_key.c_str(), 0, temp, 32, str_filename.c_str());
	
	return temp;
}

bool UTCFunctionsLibraryBPLibrary::SetItemString(FString app, FString key, FString lpstring, FString filename)
{
	bool Result = true;
	string str_app(TCHAR_TO_UTF8(*app));
	string str_key(TCHAR_TO_UTF8(*key));
	string str_lpstring(TCHAR_TO_UTF8(*lpstring));
	string str_filename(TCHAR_TO_UTF8(*filename));
	WritePrivateProfileStringA(str_app.c_str(), str_key.c_str(), str_lpstring.c_str(), str_filename.c_str());
	return Result;
}


TArray<FString> UTCFunctionsLibraryBPLibrary::ListFilesInFolder(FString Directory,FString FilesSuffix)
{
	TArray<FString> Files;
	FString GameRootDir = FPaths::GameDir();//这个目录是工程或打包后的根目录
	Files.Empty();
	GameRootDir = GameRootDir + Directory;
	if (FPaths::DirectoryExists(GameRootDir))
	{
		FString Path = GameRootDir + "*." + FilesSuffix;
		FFileManagerGeneric::Get().FindFiles(Files,*Path,true,false);
		for (int i = 0;i < Files.Num();i++)
		{
			Files[i] = GameRootDir + Files[i];
		}
	}
	return Files;
}


ListFilesInFolder 函数返回的是文件名数组。包含全路径。起始路径默认的是根目录,比如想访问工程或者打包游戏后的config文件夹,遍历ini文件,第一个参数传“config/”,第二个参数传“ini”就好了。不加引号.

还有,读写ini不用使用windows的API 来解决,UE4提供了GConfig。哭 我开始居然忘了!直接

FString ValueReceived;
    GConfig->GetString(
        TEXT("/Script/Engine.WorldInfo"),
        TEXT("GlobalDefaultGameType"),
        ValueReceived,
        GGameIni
    );
就可以了。 GetInt,GetFloat,SetString道理一样。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
UE4的项目工程文件是指在使用虚幻引擎制作游戏或其他应用程序时所使用的工程文件。这些文件包含了项目的所有资源和设置,可以对项目进行管理和编辑。 在UE4中,项目工程文件主要包括以下几个部分: 1. .uproject文件:这是项目的主文件,以.uproject为后缀名。它记录了项目的名称、版本号、引擎版本等信息,并充当了项目的入口点。通过双击打开.uproject文件,可以启动UE4编辑器并打开项目。 2. .umap文件:这是关卡文件,以.umap为后缀名。每个关卡通常对应一个.umap文件,它包含了关卡的地形、模型、材质、光照等信息。在这些文件进行编辑和设计,可以创建游戏的具体关卡。 3. .uasset文件:这是资源文件,以.uasset为后缀名。它包含了项目中使用的各种资源,如纹理、音效、脚本等。这些文件经过编译和打包后,可以在项目中使用。 4. .uplugin文件:这是插件文件,以.uplugin为后缀名。它用于扩展UE4的功能,可以添加自定义的工具、功能模块等。通过导入和加载插件文件,可以增强项目的开发和编辑能力。 除了上述常见的文件类型外,UE4的项目工程文件还包括一些辅助文件和配置文件,如.sln、.suo、.ini等,这些文件用于项目的管理、编译和配置。 总结起来,UE4的项目工程文件是一系列用于管理和编辑项目的文件,包括主文件、关卡文件、资源文件和插件文件等。通过对这些文件的编辑和配置,可以实现游戏或应用程序的开发和制作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值