博客好久没更新了 嘻嘻 今天我们研究一下在UE4中如何队本地文件夹进行操作
首先我们在本地的游戏目录创建一个文件
记住是游戏目录!!!
头文件
UFUNCTION(BlueprintCallable, Category = "Folder")
static void CreateFolder(FString _path);
CPP文件
void UJsonWriteRead::CreateFolder(FString _path)
{
_path = FPaths::GameDir() / *_path;
_path = FPaths::ConvertRelativePathToFull(*_path);
FPlatformFileManager::Get().GetPlatformFile().CreateDirectoryTree(*_path);
}
_path 就是你需要创建的文件的路径
定义这样的函数在UE4蓝图如何使用呢
_path即为相对路径,例如在游戏目录的Config文件夹中创建Test文件夹
传入的参数则为./Config/Test
如果不想在游戏目录中创建文件夹那么方法中就不要打开游戏目录传入绝对路径
该函数实现为
void UJsonWriteRead::CreateFolder(FString _path)
{
FPlatformFileManager::Get().GetPlatformFile().CreateDirectoryTree(*_path);
}
删除操作类似直接贴代码
void UJsonWriteRead::DeleteFolder(FString _path)
{
_path = FPaths::GameDir() / *_path;
_path = FPaths::ConvertRelativePathToFull(*_path);
FPlatformFileManager::Get().Get().GetPlatformFile().DeleteDirectoryRecursively(*_path);
}
获取文件
////获取某一目录下的所有文件
//UJsonWriteRead::GetFolderFiles(FString _path)
//{
// TArray<FString> files;
//
// FPaths::NormalizeDirectoryName(_path);
// IFileManager& FileManager = IFileManager::Get();
//
// FString FinalPath = _path / TEXT("*");
// FileManager.FindFiles(files, *FinalPath, true, true);
//
// return files;
//}
判断文件是否存在
FPlatformFileManager::Get().GetPlatformFile().DirectoryExists(*_path)
返回bool值