UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
BuildPatchServices::IFileSystem Class Referenceabstract

#include <FileSystem.h>

+ Inheritance diagram for BuildPatchServices::IFileSystem:

Public Member Functions

virtual ~IFileSystem ()
 
virtual bool DirectoryExists (const TCHAR *DirectoryPath) const =0
 
virtual bool MakeDirectory (const TCHAR *DirectoryPath) const =0
 
virtual bool GetFileSize (const TCHAR *Filename, int64 &FileSize) const =0
 
virtual bool GetAttributes (const TCHAR *Filename, EAttributeFlags &Attributes) const =0
 
virtual bool GetTimeStamp (const TCHAR *Filename, FDateTime &TimeStamp) const =0
 
virtual bool SetReadOnly (const TCHAR *Filename, bool bIsReadOnly) const =0
 
virtual bool SetCompressed (const TCHAR *Filename, bool bIsCompressed) const =0
 
virtual bool SetExecutable (const TCHAR *Filename, bool bIsExecutable) const =0
 
virtual TUniquePtr< FArchiveCreateFileReader (const TCHAR *Filename, EReadFlags ReadFlags=EReadFlags::None) const =0
 
virtual TUniquePtr< FArchiveCreateFileWriter (const TCHAR *Filename, EWriteFlags WriteFlags=EWriteFlags::None) const =0
 
virtual bool LoadFileToString (const TCHAR *Filename, FString &Contents) const =0
 
virtual bool SaveStringToFile (const TCHAR *Filename, const FString &Contents) const =0
 
virtual bool DeleteFile (const TCHAR *Filename) const =0
 
virtual bool MoveFile (const TCHAR *FileDest, const TCHAR *FileSource) const =0
 
virtual bool CopyFile (const TCHAR *FileDest, const TCHAR *FileSource) const =0
 
virtual bool FileExists (const TCHAR *Filename) const =0
 
virtual void FindFiles (TArray< FString > &FoundFiles, const TCHAR *Directory, const TCHAR *FileExtension=nullptr) const =0
 
virtual void FindFilesRecursively (TArray< FString > &FoundFiles, const TCHAR *Directory, const TCHAR *FileExtension=nullptr) const =0
 
virtual void ParallelFindFilesRecursively (TArray< FString > &FoundFiles, const TCHAR *Directory, const TCHAR *FileExtension=nullptr, EAsyncExecution AsyncExecution=EAsyncExecution::ThreadPool) const =0
 
virtual int64 GetAllowedBytesToWriteThrottledStorage (const TCHAR *DestinationPath=nullptr) const =0
 

Detailed Description

The File System class is used for classes which require file access. It wraps Core IFileManager, and IPlatformFile. Also provides additional functionality missing from these classes at the time of writing. Using this wrapper allows dependants to be easily testable.

Constructor & Destructor Documentation

◆ ~IFileSystem()

virtual BuildPatchServices::IFileSystem::~IFileSystem ( )
inlinevirtual

Member Function Documentation

◆ CopyFile()

virtual bool BuildPatchServices::IFileSystem::CopyFile ( const TCHAR FileDest,
const TCHAR FileSource 
) const
pure virtual

Copy a file.

Parameters
FileDestThe destination file path.
FileSourceThe source file path.
Returns
true if the file was copied successfully.

Implemented in BuildPatchServices::FFileSystem.

◆ CreateFileReader()

virtual TUniquePtr< FArchive > BuildPatchServices::IFileSystem::CreateFileReader ( const TCHAR Filename,
EReadFlags  ReadFlags = EReadFlags::None 
) const
pure virtual

Creates file reader archive.

Parameters
FilenameThe filename for the request.
ReadFlagsThe file open flags.
Returns
unique pointer to the created archive, invalid if failed to open the file.

Implemented in BuildPatchServices::FFileSystem.

◆ CreateFileWriter()

virtual TUniquePtr< FArchive > BuildPatchServices::IFileSystem::CreateFileWriter ( const TCHAR Filename,
EWriteFlags  WriteFlags = EWriteFlags::None 
) const
pure virtual

Creates file writer archive.

Parameters
FilenameThe filename for the request.
WriteFlagsThe file open flags.
Returns
unique pointer to the created archive, invalid if failed to open the file.

Implemented in BuildPatchServices::FFileSystem.

◆ DeleteFile()

virtual bool BuildPatchServices::IFileSystem::DeleteFile ( const TCHAR Filename) const
pure virtual

Delete a file.

Parameters
FilenameThe file to delete.
Returns
true if the file was deleted or did not exist.

Implemented in BuildPatchServices::FFileSystem.

◆ DirectoryExists()

virtual bool BuildPatchServices::IFileSystem::DirectoryExists ( const TCHAR DirectoryPath) const
pure virtual

Checks whether a directory exists.

Parameters
DirectoryPathThe directory to check.
Returns
true if directory exists.

Implemented in BuildPatchServices::FFileSystem.

◆ FileExists()

virtual bool BuildPatchServices::IFileSystem::FileExists ( const TCHAR Filename) const
pure virtual

Checks whether a file exists.

Parameters
FilenameThe file to check.
Returns
true if file exists.

Implemented in BuildPatchServices::FFileSystem.

◆ FindFiles()

virtual void BuildPatchServices::IFileSystem::FindFiles ( TArray< FString > &  FoundFiles,
const TCHAR Directory,
const TCHAR FileExtension = nullptr 
) const
pure virtual

Finds all the files within the given directory, with optional file extension filter.

Parameters
FoundFilesReceives the files that matched the optional FileExtension filter, or all files if none was specified.
DirectoryThe directory to iterate the contents of.
FileExtensionThe extension to filter by, in the form of TEXT(".ext"). If null or empty string, all files are found.

Implemented in BuildPatchServices::FFileSystem.

◆ FindFilesRecursively()

virtual void BuildPatchServices::IFileSystem::FindFilesRecursively ( TArray< FString > &  FoundFiles,
const TCHAR Directory,
const TCHAR FileExtension = nullptr 
) const
pure virtual

Finds all the files within the given directory tree, with optional file extension filter.

Parameters
FoundFilesReceives the files that matched the optional FileExtension filter, or all files if none was specified.
DirectoryThe directory to iterate the contents of. This function explores subdirectories.
FileExtensionThe extension to filter by, in the form of TEXT(".ext"). If null or empty string, all files are found.

Implemented in BuildPatchServices::FFileSystem.

◆ GetAllowedBytesToWriteThrottledStorage()

virtual int64 BuildPatchServices::IFileSystem::GetAllowedBytesToWriteThrottledStorage ( const TCHAR DestinationPath = nullptr) const
pure virtual

Returns the number of bytes that are currently allowed to be written to throttled write storage (if the platform has such restrictions)

Parameters
DestinationPathIf specified, the file system can optionally take into account the destination of the file to determine the current limit
Returns
The number of bytes that are allowed to be written to write throttled storage. If there is no limit, INT64_MAX is returned

Implemented in BuildPatchServices::FFileSystem.

◆ GetAttributes()

virtual bool BuildPatchServices::IFileSystem::GetAttributes ( const TCHAR Filename,
EAttributeFlags &  Attributes 
) const
pure virtual

Get the attributes for a file.

Parameters
FilenameThe filename for the request.
AttributesReceives the attribute flags if successful.
Returns
true if successful.

Implemented in BuildPatchServices::FFileSystem.

◆ GetFileSize()

virtual bool BuildPatchServices::IFileSystem::GetFileSize ( const TCHAR Filename,
int64 FileSize 
) const
pure virtual

Get the size of a file.

Parameters
FilenameThe filename for the request.
FileSizeReceives the file size in bytes or INDEX_NONE if the file didn't exist.
Returns
true if successful.

Implemented in BuildPatchServices::FFileSystem.

◆ GetTimeStamp()

virtual bool BuildPatchServices::IFileSystem::GetTimeStamp ( const TCHAR Filename,
FDateTime TimeStamp 
) const
pure virtual

Get modification time of a file.

Parameters
FilenameThe filename for the request.
TimeStampReceives the time stamp if successful.
Returns
true if successful.

Implemented in BuildPatchServices::FFileSystem.

◆ LoadFileToString()

virtual bool BuildPatchServices::IFileSystem::LoadFileToString ( const TCHAR Filename,
FString &  Contents 
) const
pure virtual

Load a file on disk into string.

Parameters
FilenameThe filename for the request.
ContentsThe contents of the file if successful.
Returns
true if successful.

Implemented in BuildPatchServices::FFileSystem.

◆ MakeDirectory()

virtual bool BuildPatchServices::IFileSystem::MakeDirectory ( const TCHAR DirectoryPath) const
pure virtual

Create a directory path.

Parameters
DirectoryPathThe directory path to create.
Returns
true if successful.

Implemented in BuildPatchServices::FFileSystem.

◆ MoveFile()

virtual bool BuildPatchServices::IFileSystem::MoveFile ( const TCHAR FileDest,
const TCHAR FileSource 
) const
pure virtual

Move or rename a file.

Parameters
FileDestThe destination file path.
FileSourceThe source file path.
Returns
true if the file was moved/renamed successfully.

Implemented in BuildPatchServices::FFileSystem.

◆ ParallelFindFilesRecursively()

virtual void BuildPatchServices::IFileSystem::ParallelFindFilesRecursively ( TArray< FString > &  FoundFiles,
const TCHAR Directory,
const TCHAR FileExtension = nullptr,
EAsyncExecution  AsyncExecution = EAsyncExecution::ThreadPool 
) const
pure virtual

Finds all the files within the given directory tree, with optional file extension filter. This version places each directory found on separate threads to improve large enumeration times.

Parameters
FoundFilesReceives the files that matched the optional FileExtension filter, or all files if none was specified.
DirectoryThe directory to iterate the contents of. This function explores subdirectories.
FileExtensionThe extension to filter by, in the form of TEXT(".ext"). If null or empty string, all files are found.
AsyncExecutionThe threaded execution method to use, i.e. on Task Graph, Thread Pool, or a new thread per directory.

Implemented in BuildPatchServices::FFileSystem.

◆ SaveStringToFile()

virtual bool BuildPatchServices::IFileSystem::SaveStringToFile ( const TCHAR Filename,
const FString &  Contents 
) const
pure virtual

Save a string to file on disk.

Parameters
FilenameThe filename for the request.
ContentsThe string to save.
Returns
true if successful.

Implemented in BuildPatchServices::FFileSystem.

◆ SetCompressed()

virtual bool BuildPatchServices::IFileSystem::SetCompressed ( const TCHAR Filename,
bool  bIsCompressed 
) const
pure virtual

Set whether the file is compressed.

Parameters
FilenameThe filename for the request.
bIsCompressedThe state to set.
Returns
true if successful.

Implemented in BuildPatchServices::FFileSystem.

◆ SetExecutable()

virtual bool BuildPatchServices::IFileSystem::SetExecutable ( const TCHAR Filename,
bool  bIsExecutable 
) const
pure virtual

Set whether the file is executable.

Parameters
FilenameThe filename for the request.
bIsExecutableThe state to set.
Returns
true if successful.

Implemented in BuildPatchServices::FFileSystem.

◆ SetReadOnly()

virtual bool BuildPatchServices::IFileSystem::SetReadOnly ( const TCHAR Filename,
bool  bIsReadOnly 
) const
pure virtual

Set whether the file is readonly.

Parameters
FilenameThe filename for the request.
bIsReadOnlyThe state to set.
Returns
true if successful.

Implemented in BuildPatchServices::FFileSystem.


The documentation for this class was generated from the following file: