美文网首页
UE C++操作外部文件整理

UE C++操作外部文件整理

作者: SilenceTT | 来源:发表于2022-07-07 12:02 被阅读0次

用到的头文件:

#include "Runtime/Core/Public/HAL/FileManagerGeneric.h"
#include "Developer/DesktopPlatform/Public/IDesktopPlatform.h"
#include "Developer/DesktopPlatform/Public/DesktopPlatformModule.h"

文件夹

image.png

创建文件夹:

UFUNCTION(BlueprintCallable, Category = "File operation")
    static void CreateDic(FString filePath);
void UFilesManager::CreateDic(FString filePath)
{
    IPlatformFile& PlatformFile = FPlatformFileManager::Get().GetPlatformFile();
    PlatformFile.CreateDirectory(*filePath);
}

删除文件夹:

UFUNCTION(BlueprintCallable, Category = "File operation")
    static void DeleteDic(FString filePath);
void UFilesManager::DeleteDic(FString filePath)
{
    IPlatformFile& PlatformFile = FPlatformFileManager::Get().GetPlatformFile();
    PlatformFile.DeleteDirectory(*filePath);
}

打开文件夹:

UFUNCTION(BlueprintCallable, Category = "File operation")
    static void OpenWindowsFiles(FString InUNCPath, FString& OutPath);
void UFilesManager::OpenWindowsFiles(FString InUNCPath, FString& OutPath)
{
        IDesktopPlatform* DesktopPlatform = FDesktopPlatformModule::Get();
        DesktopPlatform->OpenDirectoryDialog(
            nullptr,
            TEXT("Open Directory"),
            InUNCPath,
            OutPath
        );  
}

遍历文件夹:

UFUNCTION(BlueprintCallable, Category = "File operation")
    static void ScanDirectory(TArray<FString>& Files, const FString& FilePath, const FString& Extension);
void UFilesManager::ScanDirectory(TArray<FString>& Files, const FString& FilePath, const FString& Extension)
{

    FString SearchedFiles = FilePath + Extension;
    TArray<FString> FindedFiles;

    IFileManager::Get().FindFiles(FindedFiles, *SearchedFiles, true, false);

    FString SearchFile = "";

    for (int i = 0; i < FindedFiles.Num(); i++)
    {
        SearchFile = FilePath + FindedFiles[i];
        Files.Add(SearchFile);
    }
}

文件操作

image.png

读取文件:

UFUNCTION(BlueprintCallable, Category = "File operation")
    static FString ReadStringToFile(FString Dir);
FString UFilesManager::ReadStringToFile(FString Dir)
{
    FString Result;
    FFileHelper::LoadFileToString(Result, *Dir);
    return Result;
}

查找文件:

UFUNCTION(BlueprintCallable, Category = "File operation")
    static void FindFiles(TArray<FString>& Files,FString Path, FString Filter, bool InFiles, bool InDirectory);
void UFilesManager::FindFiles(TArray<FString>& Files, FString Path, FString Filter, bool InFiles, bool InDirectory)
{
    FFileManagerGeneric::Get().FindFilesRecursive(Files, *Path, *Filter, InFiles, InDirectory);
}

删除文件:

UFUNCTION(BlueprintCallable, Category = "File operation")
    static bool DeleteFile(FString FilePath);
bool UFilesManager::DeleteFile(FString FilePath)
{
    return IFileManager::Get().Delete(*FilePath);
}

写入文件:

UFUNCTION(BlueprintCallable, Category = "File operation")
    static void WriteStringToFile(FString FileName, FString content);
void UFilesManager::WriteStringToFile(FString FileName, FString content)
{
    FFileHelper::SaveStringToFile(content, *FileName);
}

移动文件:

UFUNCTION(BlueprintCallable, Category = "File operation")
    static bool MoveFileTo(FString To, FString From);
void UFilesManager::WriteStringToFile(FString FileName, FString content)
{
    FFileHelper::SaveStringToFile(content, *FileName);
}

打开文件(exe文件):

UFUNCTION(BlueprintCallable, Category = "File operation")
    static void OpenFile(FString FilePath);
void UFilesManager::OpenFile(FString FilePath)
{
    FPlatformProcess::CreateProc(*FilePath, nullptr, true, false, false, nullptr, 1, nullptr, nullptr);

}

获取文件字节:

UFUNCTION(BlueprintCallable, Category = "File operation")
     static void GetFileSize(const FString& FilePath ,int64& FileSize);
void UFilesManager::GetFileSize(const FString& FilePath, int64& FileSize)
{
    if (!FPlatformFileManager::Get().GetPlatformFile().FileExists(*FilePath))
    {
        GEngine->AddOnScreenDebugMessage(-1, 3.0f, FColor::Red, TEXT("Find File error!"));
        FileSize = 0 ;
    }
    FileSize = FPlatformFileManager::Get().GetPlatformFile().FileSize(*FilePath);
}

[UE4] C++操作外部文件整理 - 知乎 (zhihu.com)

相关文章

  • UE C++操作外部文件整理

    用到的头文件: 文件夹 创建文件夹: 删除文件夹: 打开文件夹: 遍历文件夹: 文件操作 读取文件: 查找文件: ...

  • UE 文件夹和文件操作

    前言 UE有很多针对多平台的操作,其中文件操作也属于跨平台有差异的操作,UE4将跨平台文件封装在FPlatform...

  • jmeter第三篇 beanshell 采样器

    一、操作变量 二、操作属性 三、自定义函数 四、引用外部java文件 五、引用外部class文件 六、引用外部Ja...

  • c++文件操作详解

    c++文件操作详解 C++ 通过以下几个类支持文件的输入输出: ofstream: 写操作(输出)的文件类 (由o...

  • UE4每日小分享 1:使用UE中C++代码导入头文件时的注意事项

    使用UE中C++代码导入头文件时的注意事项: 确保你导入的头文件不要放在“Pickup.generated.h”文...

  • UE4-UMG与c++交互

    UE4-UMG与c++交互 创建工程 打开VS 修改 项目名.Build.cs文件 添加”UMG”,”Slate”...

  • LOG&Itr&XML&String Conversions

    分类:UE4 C++ 标签:数据结构 数据处理 配置文件 log 参考网址:https://wiki.unreal...

  • 文件读写总结

    1. C++文件读写详解 1.1. 文件读写操作 使用方式 1.1.1. 打开文件 文件操作通过成员函数open(...

  • Android数据存储

    (一)文件存储分类: 获取文件路径:内部路径和外部路径如下: 文件写操作如下: 文件读操作如下: 文件存储在设备上...

  • 05 - Base Character Class

    创建一个c++类 继承自character 在类的头文件中生命相应变量 基本的c++语法 ue4特殊的地方说一下 ...

网友评论

      本文标题:UE C++操作外部文件整理

      本文链接:https://www.haomeiwen.com/subject/ypxpbrtx.html