Files
2025-05-18 13:04:45 +08:00

28 lines
972 B
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Containers/Array.h"
#include "Containers/UnrealString.h"
#include "GenericPlatform/GenericPlatformFile.h"
class FArchive;
class ICookArtifactReader
{
public:
virtual ~ICookArtifactReader() = default;
virtual bool FileExists(const TCHAR* Filename) = 0;
virtual int64 FileSize(const TCHAR* Filename) = 0;
virtual IFileHandle* OpenRead(const TCHAR* Filename) = 0;
virtual bool IterateDirectory(const TCHAR* Directory, IPlatformFile::FDirectoryVisitor& Visitor) = 0;
// Utilities
virtual FArchive* CreateFileReader(const TCHAR* Filename) = 0;
virtual bool IterateDirectoryRecursively(const TCHAR* Directory, IPlatformFile::FDirectoryVisitor& Visitor) = 0;
virtual void FindFiles(TArray<FString>& Result, const TCHAR* Filename, bool Files, bool Directories) = 0;
virtual void FindFiles(TArray<FString>& FoundFiles, const TCHAR* Directory, const TCHAR* FileExtension = nullptr) = 0;
};