1、获取指定文件夹的所有子文件夹
void FindAllSubFolders(const FString& RootFolder, TArray<FString>& SubFolders)
{
FString SearchFolder = FPaths::Combine(RootFolder, TEXT("*"));
// Find all directories in the current folder
TArray<FString> FoundDirectories;
IFileManager::Get().FindFiles(FoundDirectories, *SearchFolder, false, true);
// Iterate through found directories
for (const FString& Directory : FoundDirectories)
{
// Skip special folders like . and ..
if (Directory == TEXT(".") || Directory == TEXT(".."))
{
continue;
}
FString FullPath = FPaths::Combine(RootFolder, Directory);
// Add this directory to the list
SubFolders.Add(FullPath);
}
}
2、根据后缀名获取指定文件夹的所有文件
void FindAllFilesByFileExtension(const FString& RootFolder, TArray<FString>& Files,const FString& FileExtension)
{
IPlatformFile& currentPlat = FPlatformFileManager::Get().GetPlatformFile();
currentPlat.FindFiles(Files, *RootFolder, *FileExtension);
}