Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 유니티
- Widget
- UE4
- Stimuli
- uproperty
- UnReal
- 재귀
- 알고리즘
- EffectiveC++
- ue4macro
- Unity
- AIPerception
- server
- 나나이트
- UE5
- 다이나믹프로그래밍
- HTTP
- UMG
- 코테
- 코딩테스트
- c++
- 프로그래머스
- dfs
- 언리얼4
- DP
- 동적계획법
- 문자열
- blueprint
- 언리얼
- 코테연습
Archives
- Today
- Total
공부 기록
[UE4] 런타임에 파일탐색기 열기 본문
Runtime File Directory Open C++
런타임 중에 코드로 파일 탐색기를 여는 방법이다.
선택한 디렉토리의 경로를 가져오거나, 디렉토리 안의 파일 목록을 가져올 수 있다.
1. 선택한 디렉토리 경로 가져오기
디렉토리를 선택할 경로를 넘겨주고 디렉토리 탐색기를 연다.
열린 탐색기에서 디렉토리를 선택하면 그 경로를 받아온다.
#include "DesktopPlatform/Public/IDesktopPlatform.h"
#include "DesktopPlatform/Public/DesktopPlatformModule.h"
void UFunctionLibrary::GetOpenDirectoryDialog(FString DirectoryPath, FString& Directory, bool& IsSelect) {
IDesktopPlatform* DesktopPlatform = FDesktopPlatformModule::Get();
FString DefaultFile = TEXT("");
FString DefaultPath = DirectoryPath;
if (DesktopPlatform) {
DesktopPlatform->OpenDirectoryDialog(
NULL,
TEXT("Select Directory"), // 탐색기 제목
DefaultPath, // 열고싶은 탐색기 경로
Directory // 선택한 디렉토리 경로가 여기에 들어옴
);
}
// 아무 폴더도 고르지 않았을 경우
if (DirectoryName.Equals(FPaths::GetBaseFilename(Directory))) IsSelect = false;
else IsSelect = true;
}
2. 선택한 디렉토리에 속한 파일 목록을 가져오기
디렉토리를 선택할 경로를 넘겨주고 파일 탐색기를 연다.
열린 탐색기에서 디렉토리를 선택하면 해당 경로에 속한 파일 목록을 가져온다. 파일 타입을 지정할 수 있다.
ex) FBX 파일을 찾고 싶다면 "FBX Files (*.fbx)|*.fbx|" 형식으로 넣으면 된다.
선택한 파일은 FileNames 배열에 담겨 다른 곳에서 사용 가능하다. (블루프린트 callable 하여 블루프린트에서 사용함)
.
#include "DesktopPlatform/Public/IDesktopPlatform.h"
#include "DesktopPlatform/Public/DesktopPlatformModule.h"
bool AMyPlayerController::OpenFileExample(TArray<FString>& FileNames, FString DialogueTitle, FString FileTypes, bool multiselect)
{
IDesktopPlatform* DesktopPlatform = FDesktopPlatformModule::Get();
bool bOpened = false;
FString DefaultFile = TEXT("");
FString DefaultPath = TEXT("D:/디렉토리경로");
FPaths::GetPath(DefaultPath);
if (DesktopPlatform) {
DesktopPlatform->OpenFileDialog(
NULL,
TEXT("Select file"), // 파일탐색기 제목
DefaultPath, // 열고싶은 파일탐색기 경로
DefaultFile, // 동작하지 않는 파라미터같음 (지정해도 파일 안열림)
FileType, // 열고싶은 파일 종류
EFileDialogFlags::None,
FileNames // 디렉토리의 파일 목록이 여기로 들어옴
);
}
bOpened = (FileNames.Num() > 0);
return bOpened;
}
'Unreal > C++' 카테고리의 다른 글
[UE4] Blueprint Implementable Event 사용 시 주의 할 점 (0) | 2022.05.10 |
---|---|
[UE4] Http Request 를 이용한 서버 파일 업로드 (0) | 2022.04.15 |
[UE4] C++ Private 변수 에디터에 노출하는 방법 (0) | 2022.03.24 |
[UE4] Json 에서 배열 값 얻기 (JSonArray) from Http (0) | 2022.02.24 |
[UE4] 경로를 통해 File, Asset 리스트 가져오기 (0) | 2022.02.17 |
Comments