Unreal/C++
[UE4] 경로를 통해 File, Asset 리스트 가져오기
혜멘
2022. 2. 17. 16:32
Asset List / File List from Path
에셋 목록 가져오기
- path 형식은 "/Game/Content/원하는폴더명"
- path의 마지막 부분에 슬래시/가 있으면 인식 못함
- FAssetData 를 반환
#include "AssetRegistry/AssetRegistryModule.h"
TArray<FAssetData> AMyPlayerController::GetMeshListByPath(FString RootFolderFullPath) {
FAssetRegistryModule& AssetRegistryModule = FModuleManager::LoadModuleChecked<FAssetRegistryModule>(FName("AssetRegistry"));
IAssetRegistry& AssetRegistry = AssetRegistryModule.Get();
TArray<FString> PathsToScan;
PathsToScan.Add(RootFolderFullPath);
AssetRegistry.ScanPathsSynchronous(PathsToScan);
TArray<FAssetData> MeshAssetList;
AssetRegistry.GetAssetsByPath(FName(*RootFolderFullPath), MeshAssetList);
return MeshAssetList;
}
파일 목록 가져오기
- path 형식은 "D:/원하는폴더명/"
- NormalizeDirectoryName은 \를 /로 바꿔줌
- 특정 확장자 파일만을 가져오고 싶다면 path + "*.확장자명" 해주면 됨
#include "HAL/FileManagerGeneric.h"
TArray<FString> AMyPlayerController::GetFileList(FString RootFolderFullPath) {
FPaths::NormalizeDirectoryName(RootFolderFullPath);
FFileManagerGeneric FileManager;
TArray<FString> Files;
Files.Empty();
FString FinalPath = RootFolderFullPath + "/*";
IFileManager::Get().FindFiles(Files, *FinalPath, true, false);
return Files;
}