UEC++ 打开资源管理器并返回选中文件路径

本文介绍了如何在UnrealEngine(UE)中创建一个名为OpenWindowsFiles的函数,通过FDesktopPlatformModule的FileDialog功能打开文件管理器,用户选择文件后,函数将结果打印出来。示例展示了选择mx.sln文件后的操作过程。
摘要由CSDN通过智能技术生成

声明一个函数,我们利用这个函数来进行打开资源管理器操作

    UFUNCTION(BlueprintCallable, Category = "OpenWindowsFile")
        TArray<FString> OpenWindowsFiles();

函数实现:

TArray<FString> AActor1::OpenWindowsFiles()
{
    TArray<FString> AbsoluteOpenFileNames;//获取的文件绝对路径
    FString ExtensionStr = TEXT("*.*");//文件类型

    IDesktopPlatform* DesktopPlatform = FDesktopPlatformModule::Get();
    DesktopPlatform->OpenFileDialog(nullptr, TEXT("文件管理器"), FPaths::ConvertRelativePathToFull(FPaths::ProjectDir()), TEXT(""), *ExtensionStr, EFileDialogFlags::None, AbsoluteOpenFileNames);
    return AbsoluteOpenFileNames;

}

然后我们在程序运行的时候调用一次这个函数

void AActor1::BeginPlay()
{
    Super::BeginPlay();
    TArray<FString> resStr = OpenWindowsFiles();
    for (int i = 0; i < resStr.Num(); i++) {
        UKismetSystemLibrary::PrintString(this, resStr[i]);
    }
}

查看结果:

当程序运行就弹出了资源管理器,在选择了mx.sln文件之后,就将该文件的结果打印出来了

OpenFileDialog在UE中的定义:

/** 
     * Opens the "open file" dialog for the platform
     *
     * @param ParentWindowHandle        此对话框的父窗口的本机句柄
     * @param DialogTitle                对话框窗口标题的文本
     * @param DefaultPath                文件对话框最初打开的路径
     * @param DefaultFile                对话框最初将选择的文件
     * @param Flags                      对话的详细信息。看到EFileDialogFlags。
     * @param FileTypes                  要在对话框中显示的类型过滤器。该字符串应该是一个“|”分隔的(描述|扩展列表)对列表。扩展列表用“;”分隔。
     * @param OutFilenames               在对话框中选择的文件名
     * @param OutFilterIndex            对话框中选择的类型
     * @如果成功选择文件,则返回true
     */
    virtual bool OpenFileDialog(const void* ParentWindowHandle, const FString& DialogTitle, const FString& DefaultPath, const FString& DefaultFile, const FString& FileTypes, uint32 Flags, TArray<FString>& OutFilenames, int32& outFilterIndex ) = 0;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值