Unreal은 C++을 사용하기 때문에 파일을 복사할 때에는 C++의 File Stream을 이용해도 괜찮다.
하지만 Unreal은 'uasset' 파일에서 다양한 형식을 지원하기 때문에 오류가 나는 경우가 생긴다.
때문에 IPlatformFile을 이용해야한다.
void CopyFile(FString from, FString to)
{
IPlatformFile& PlatformFile = FPlatformFileManager::Get().GetPlatformFile();
PlatformFile.CopyFile(*to, *from);
}
코드는 어렵지 않다.
복사할 파일의 위치를 포함한 파일명과 복사되는 위치와 파일명만 지정해주면 된다.
파일과 폴더를 탐색하는 것은 IFileManager를 이용한다.
bool FileExplorer(TArray<FString>& Files, FString RootFolderFullPath, FString Ext, bool FindFile, bool FindDir)
{
if (RootFolderFullPath.Len() < 1) return false;
FPaths::NormalizeDirectoryName(RootFolderFullPath);
IFileManager& FileManager = IFileManager::Get();
if (Ext == "") // All file
{
Ext = "*.*";
}
else
{
Ext = (Ext.Left(1) == ".") ? "*" + Ext : "*." + Ext;
}
FString FinalPath = RootFolderFullPath + "/" + Ext;
FileManager.FindFiles(Files, *FinalPath, FindFile, FindDir);
return true;
}
파일과 폴더를 검색하는 것은 FileManager의 FindFiles를 사용하여 간단하게 해결할 수 있다.
해당 경로 내의 폴더와 파일을 모두 검색하기 때문에 특정 확장자, 파일, 폴더만을 검색할 때에 유용하게 사용 가능하다.
파일 복사와 검색의 차이점은 복사는 파일명까지, 검색은 폴더의 경로까지만 알면 해결할 수 있다.
'게임 개발 끄적 > Unreal (C++)' 카테고리의 다른 글
[UE4] Voice Capture (0) | 2018.03.20 |
---|---|
[UE4] Render Capture Scene (0) | 2018.03.19 |
[UE4] Send HTTP (3) | 2018.03.19 |
[UE4] Save Game (0) | 2017.12.06 |
[UE4] Time Manager (0) | 2017.11.24 |