UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FileManager.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreTypes.h"
7#include "Misc/DateTime.h"
9
10// Maximum length of any filename. For now, we have no restriction. We would probably use shortening rules if we have to.
11#define MAX_UNREAL_FILENAME_LENGTH_DEPRECATED (PLATFORM_MAX_FILEPATH_LENGTH_DEPRECATED)
12
13
24
25
33
34
36{
37 COPY_OK = 0x00,
38 COPY_Fail = 0x01,
40};
41
42
44{
45 virtual bool Poll( float Fraction )=0;
46};
47
48
50{
51 IO_READ = 0x01, // Open for reading
52 IO_WRITE = 0x02, // Open for writing
53 IO_APPEND = 0x40, // When writing, keep the existing data, set the filepointer to the end of the existing data
54};
55
57{
58protected:
59
62
63public:
64
66 static CORE_API IFileManager& Get();
67
69 virtual void ProcessCommandLineOptions() = 0;
70
72 virtual void SetSandboxEnabled(bool bInEnabled) = 0;
74 virtual bool IsSandboxEnabled() const = 0;
75
85 virtual FArchive* CreateFileReader( const TCHAR* Filename, uint32 ReadFlags=0 )=0;
86
96 virtual FArchive* CreateFileWriter( const TCHAR* Filename, uint32 WriteFlags=0 )=0;
97
98 // If you're writing to a debug file, you should use CreateDebugFileWriter, and wrap the calling code in #if ALLOW_DEBUG_FILES.
99#if ALLOW_DEBUG_FILES
100 virtual FArchive* CreateDebugFileWriter(const TCHAR* Filename, uint32 WriteFlags=0 ) = 0;
101#endif
102
104 virtual bool IsReadOnly( const TCHAR* Filename )=0;
105
107 virtual bool Delete( const TCHAR* Filename, bool RequireExists=0, bool EvenReadOnly=0, bool Quiet=0 )=0;
108
110 virtual uint32 Copy( const TCHAR* Dest, const TCHAR* Src, bool Replace=1, bool EvenIfReadOnly=0, bool Attributes=0, FCopyProgress* Progress = nullptr, EFileRead ReadFlags=FILEREAD_None, EFileWrite WriteFlags=FILEWRITE_None)=0; // utility
111
113 virtual bool Move( const TCHAR* Dest, const TCHAR* Src, bool Replace=1, bool EvenIfReadOnly=0, bool Attributes=0, bool bDoNotRetryOrError=0 )=0;
114
116 virtual bool FileExists( const TCHAR* Filename )=0;
117
119 virtual bool DirectoryExists( const TCHAR* InDirectory )=0;
120
122 virtual bool MakeDirectory( const TCHAR* Path, bool Tree=0 )=0;
123
125 virtual bool DeleteDirectory( const TCHAR* Path, bool RequireExists=0, bool Tree=0 )=0;
126
129
131 virtual void FindFiles( TArray<FString>& FileNames, const TCHAR* Filename, bool Files, bool Directories)=0;
132
143 virtual void FindFiles(TArray<FString>& FoundFiles, const TCHAR* Directory, const TCHAR* FileExtension = nullptr) = 0;
144
146 virtual void FindFilesRecursive( TArray<FString>& FileNames, const TCHAR* StartDirectory, const TCHAR* Filename, bool Files, bool Directories, bool bClearFileNames=true) = 0; // utility
147
154 virtual bool IterateDirectory(const TCHAR* Directory, IPlatformFile::FDirectoryVisitor& Visitor) = 0;
155
162 virtual bool IterateDirectory(const TCHAR* Directory, IPlatformFile::FDirectoryVisitorFunc Visitor) = 0;
163
170 virtual bool IterateDirectoryRecursively(const TCHAR* Directory, IPlatformFile::FDirectoryVisitor& Visitor) = 0;
171
178 virtual bool IterateDirectoryRecursively(const TCHAR* Directory, IPlatformFile::FDirectoryVisitorFunc Visitor) = 0;
179
186 virtual bool IterateDirectoryStat(const TCHAR* Directory, IPlatformFile::FDirectoryStatVisitor& Visitor) = 0;
187
194 virtual bool IterateDirectoryStat(const TCHAR* Directory, IPlatformFile::FDirectoryStatVisitorFunc Visitor) = 0;
195
203
211
213 virtual double GetFileAgeSeconds( const TCHAR* Filename )=0;
214
218 virtual FDateTime GetTimeStamp( const TCHAR* Path ) = 0;
219
227
231 virtual bool SetTimeStamp( const TCHAR* Path, FDateTime TimeStamp ) = 0;
232
236 virtual FDateTime GetAccessTimeStamp( const TCHAR* Filename ) = 0;
237
245 virtual FString ConvertToRelativePath( const TCHAR* Filename ) = 0;
246
254 virtual FString ConvertToAbsolutePathForExternalAppForRead( const TCHAR* Filename ) = 0;
255
263 virtual FString ConvertToAbsolutePathForExternalAppForWrite( const TCHAR* Filename ) = 0;
264
271 virtual int64 FileSize( const TCHAR* Filename )=0;
272
282
290 virtual FString GetFilenameOnDisk(const TCHAR* Filename) = 0;
291};
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
ECopyResult
Definition FileManager.h:36
@ COPY_OK
Definition FileManager.h:37
@ COPY_Canceled
Definition FileManager.h:39
@ COPY_Fail
Definition FileManager.h:38
EFileWrite
Definition FileManager.h:15
@ FILEWRITE_Append
Definition FileManager.h:20
@ FILEWRITE_AllowRead
Definition FileManager.h:21
@ FILEWRITE_NoFail
Definition FileManager.h:17
@ FILEWRITE_None
Definition FileManager.h:16
@ FILEWRITE_EvenIfReadOnly
Definition FileManager.h:19
@ FILEWRITE_NoReplaceExisting
Definition FileManager.h:18
@ FILEWRITE_Silent
Definition FileManager.h:22
EFileRead
Definition FileManager.h:27
@ FILEREAD_None
Definition FileManager.h:28
@ FILEREAD_NoFail
Definition FileManager.h:29
@ FILEREAD_AllowWrite
Definition FileManager.h:31
@ FILEREAD_Silent
Definition FileManager.h:30
EFileOpenFlags
Definition FileManager.h:50
@ IO_APPEND
Definition FileManager.h:53
@ IO_WRITE
Definition FileManager.h:52
@ IO_READ
Definition FileManager.h:51
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition FileManager.h:57
virtual FArchive * CreateFileWriter(const TCHAR *Filename, uint32 WriteFlags=0)=0
virtual void FindFiles(TArray< FString > &FoundFiles, const TCHAR *Directory, const TCHAR *FileExtension=nullptr)=0
virtual FDateTime GetTimeStamp(const TCHAR *Path)=0
virtual void ProcessCommandLineOptions()=0
virtual FString ConvertToRelativePath(const TCHAR *Filename)=0
virtual bool IterateDirectoryRecursively(const TCHAR *Directory, IPlatformFile::FDirectoryVisitorFunc Visitor)=0
virtual bool Move(const TCHAR *Dest, const TCHAR *Src, bool Replace=1, bool EvenIfReadOnly=0, bool Attributes=0, bool bDoNotRetryOrError=0)=0
static CORE_API IFileManager & Get()
Definition FileManagerGeneric.cpp:1072
virtual FArchive * CreateFileReader(const TCHAR *Filename, uint32 ReadFlags=0)=0
virtual bool IterateDirectoryStatRecursively(const TCHAR *Directory, IPlatformFile::FDirectoryStatVisitorFunc Visitor)=0
virtual bool IterateDirectoryStat(const TCHAR *Directory, IPlatformFile::FDirectoryStatVisitorFunc Visitor)=0
virtual bool IterateDirectory(const TCHAR *Directory, IPlatformFile::FDirectoryVisitorFunc Visitor)=0
virtual bool MakeDirectory(const TCHAR *Path, bool Tree=0)=0
virtual bool DeleteDirectory(const TCHAR *Path, bool RequireExists=0, bool Tree=0)=0
virtual FString ConvertToAbsolutePathForExternalAppForWrite(const TCHAR *Filename)=0
virtual uint32 Copy(const TCHAR *Dest, const TCHAR *Src, bool Replace=1, bool EvenIfReadOnly=0, bool Attributes=0, FCopyProgress *Progress=nullptr, EFileRead ReadFlags=FILEREAD_None, EFileWrite WriteFlags=FILEWRITE_None)=0
virtual bool DirectoryExists(const TCHAR *InDirectory)=0
virtual void SetSandboxEnabled(bool bInEnabled)=0
virtual FString GetFilenameOnDisk(const TCHAR *Filename)=0
virtual bool FileExists(const TCHAR *Filename)=0
virtual FDateTime GetAccessTimeStamp(const TCHAR *Filename)=0
virtual FFileStatData GetStatData(const TCHAR *FilenameOrDirectory)=0
virtual bool IterateDirectoryStatRecursively(const TCHAR *Directory, IPlatformFile::FDirectoryStatVisitor &Visitor)=0
virtual double GetFileAgeSeconds(const TCHAR *Filename)=0
virtual bool SetTimeStamp(const TCHAR *Path, FDateTime TimeStamp)=0
virtual bool IterateDirectoryRecursively(const TCHAR *Directory, IPlatformFile::FDirectoryVisitor &Visitor)=0
virtual FString ConvertToAbsolutePathForExternalAppForRead(const TCHAR *Filename)=0
virtual int64 FileSize(const TCHAR *Filename)=0
virtual void FindFiles(TArray< FString > &FileNames, const TCHAR *Filename, bool Files, bool Directories)=0
virtual bool IsReadOnly(const TCHAR *Filename)=0
virtual void GetTimeStampPair(const TCHAR *PathA, const TCHAR *PathB, FDateTime &OutTimeStampA, FDateTime &OutTimeStampB)=0
IFileManager()
Definition FileManager.h:61
virtual bool IsSandboxEnabled() const =0
virtual bool IterateDirectoryStat(const TCHAR *Directory, IPlatformFile::FDirectoryStatVisitor &Visitor)=0
virtual void FindFilesRecursive(TArray< FString > &FileNames, const TCHAR *StartDirectory, const TCHAR *Filename, bool Files, bool Directories, bool bClearFileNames=true)=0
virtual bool IterateDirectory(const TCHAR *Directory, IPlatformFile::FDirectoryVisitor &Visitor)=0
virtual bool SendMessageToServer(const TCHAR *Message, IPlatformFile::IFileServerMessageHandler *Handler)=0
virtual bool Delete(const TCHAR *Filename, bool RequireExists=0, bool EvenReadOnly=0, bool Quiet=0)=0
Definition GenericPlatformFile.h:623
Definition GenericPlatformFile.h:576
Definition GenericPlatformFile.h:925
Definition Array.h:670
Definition FileManager.h:44
virtual bool Poll(float Fraction)=0
Definition DateTime.h:76
Definition GenericPlatformFile.h:195