반응형

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

+ Recent posts