UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
GenericPlatformFile.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3
4/*=============================================================================================
5 GenericPlatformFile.h: Generic platform file interfaces
6==============================================================================================*/
7
8#pragma once
9
10#include "Containers/Array.h"
13#include "CoreTypes.h"
14#include "HAL/PlatformMemory.h"
15#include "Math/NumericLimits.h"
17#include "Misc/DateTime.h"
18#include "Misc/EnumClassFlags.h"
19#include "Templates/Function.h"
21
22class FArchive;
25namespace ELogVerbosity { enum Type : uint8; }
26
31{
32 AIOP_PRIORITY_MASK = 0x000000ff,
33
34 // Flags - combine with priorities if needed
35 AIOP_FLAG_PRECACHE = 0x00000100,
36 AIOP_FLAG_DONTCACHE = 0x00000200,
37 // Use it to specify memory where read from cpu can be slow
39
40 // Priorities
49
50 // Legacy (for back-compat). Better to specify priority and AIOP_FLAG_PRECACHE separately
52};
54
59{
60 None = 0x0,
61 AllowWrite = 0x01 // attempts to open for read while allowing others to write
62};
63
65
70{
71 None = 0x0,
72 AllowRead = 0x01 // attempts to open for write while allowing others to read
73};
74
76
81{
82 None = 0x0,
83 ThreadSafe = 0x01 // should be set when the Visit function can be called from multiple threads at once.
84};
85
89enum class ESymlinkResult : int8
90{
91 Unimplemented = -1,
92 NonSymlink = 0,
93 Symlink = 1,
94};
95
97
112
117{
118public:
120 virtual ~IFileHandle()
121 {
122 }
123
125 virtual int64 Tell() = 0;
131 virtual bool Seek(int64 NewPosition) = 0;
132
139
149 virtual bool Read(uint8* Destination, int64 BytesToRead) = 0;
150
151 virtual bool ReadAt(uint8* Destination, int64 BytesToRead, int64 Offset) = 0;
152
159 virtual bool Write(const uint8* Source, int64 BytesToWrite) = 0;
160
167 virtual bool Flush(const bool bFullFlush = false) = 0;
168
174 virtual bool Truncate(int64 NewSize) = 0;
175
179 virtual void ShrinkBuffers()
180 {
181 }
182
183public:
185
187 CORE_API virtual int64 Size();
188};
189
190
239
240
246
252
257{
258 bool operator==(const FFileJournalFileHandle& Other) const;
259 bool operator!=(const FFileJournalFileHandle& Other) const;
260 CORE_API FString ToString();
261
263};
266
281
284{
285public:
287
292
294 : ErrorMessage(MoveTemp(InErrorMessage))
295 , SystemErrorCode(InSystemErrorCode)
296 {
297 }
298
300 FString GetMessage()
301 {
302 if (SystemErrorCode != 0)
303 {
306
307 return FString::Printf(TEXT("%s [%s (%d)]"), *ErrorMessage, FormattedErrorMsg, SystemErrorCode);
308 }
309 else
310 {
311 return ErrorMessage;
312 }
313 }
314
316 template <typename CharType>
318 {
321
322 Builder << Error.ErrorMessage << TEXT(" [") << FormattedErrorMsg << TEXT(" (") << Error.SystemErrorCode << TEXT(")]");
323 return Builder;
324 }
325
326private:
327 FString ErrorMessage;
328 int32 SystemErrorCode;
329};
330
334
337
342{
343public:
347 static CORE_API const TCHAR* GetPhysicalTypeName();
351
357 virtual void SetSandboxEnabled(bool bInEnabled)
358 {
359 }
360
366 virtual bool IsSandboxEnabled() const
367 {
368 return false;
369 }
370
375 virtual bool ShouldBeUsed(IPlatformFile* Inner, const TCHAR* CmdLine) const
376 {
377 return false;
378 }
379
386 virtual bool Initialize(IPlatformFile* Inner, const TCHAR* CmdLine) = 0;
387
391 virtual void InitializeAfterSetActive() { }
392
397
402
406 virtual void InitializeNewAsyncIO() { }
407
411 virtual void AddLocalDirectories(TArray<FString> &LocalDirectories)
412 {
413 if (GetLowerLevel())
414 {
415 GetLowerLevel()->AddLocalDirectories(LocalDirectories);
416 }
417 }
418
419 virtual void BypassSecurity(bool bInBypass)
420 {
421 if (GetLowerLevel() != nullptr)
422 {
424 }
425 }
426
428 virtual void Tick() { }
434 virtual const TCHAR* GetName() const = 0;
436 virtual bool FileExists(const TCHAR* Filename) = 0;
438 virtual int64 FileSize(const TCHAR* Filename) = 0;
440 virtual bool DeleteFile(const TCHAR* Filename) = 0;
443 {
444 bool bOneFailed = false;
445
446 for (const TCHAR* File : Filenames)
447 {
449 }
450
451 return !bOneFailed;
452 }
454 virtual bool IsReadOnly(const TCHAR* Filename) = 0;
456 virtual bool MoveFile(const TCHAR* To, const TCHAR* From) = 0;
458 virtual bool SetReadOnly(const TCHAR* Filename, bool bNewReadOnlyValue) = 0;
460 virtual FDateTime GetTimeStamp(const TCHAR* Filename) = 0;
462 virtual void SetTimeStamp(const TCHAR* Filename, FDateTime DateTime) = 0;
464 virtual FDateTime GetAccessTimeStamp(const TCHAR* Filename) = 0;
466 virtual FString GetFilenameOnDisk(const TCHAR* Filename) = 0;
467
469 virtual ESymlinkResult IsSymlink(const TCHAR* Filename) { return ESymlinkResult::Unimplemented; }
470
480 virtual bool HasMarkOfTheWeb(FStringView Filename, FString* OutSourceURL = nullptr) { return false; }
481
492 virtual bool SetMarkOfTheWeb(FStringView Filename, bool bNewStatus, const FString* InSourceURL = nullptr) { return false; }
493
496 {
497 None = 0,
499 AllowWrite = 1 << 0,
501 AllowDelete = 1 << 1,
507 NoBuffering = 1 << 2
508 };
509
518 CORE_API virtual FFileOpenResult OpenRead(const TCHAR* Filename, EOpenReadFlags Flags);
519
529 virtual IFileHandle* OpenRead(const TCHAR* Filename, bool bAllowWrite = false) = 0;
530
532 {
533 return OpenRead(Filename, Flags);
534 }
535
536 virtual IFileHandle* OpenReadNoBuffering(const TCHAR* Filename, bool bAllowWrite = false)
537 {
538 return OpenRead(Filename, bAllowWrite);
539 }
540
543 {
545 None = 0,
547 AllowRead = 1 << 0,
549 Append = 1 << 1,
550 };
551
553 virtual IFileHandle* OpenWrite(const TCHAR* Filename, bool bAppend = false, bool bAllowRead = false) = 0;
563
565 virtual bool DirectoryExists(const TCHAR* Directory) = 0;
567 virtual bool CreateDirectory(const TCHAR* Directory) = 0;
569 virtual bool DeleteDirectory(const TCHAR* Directory) = 0;
570
573
617
620
623 {
624 public:
626
633 {
634 return true;
635 }
636
643 virtual bool Visit(const TCHAR* FilenameOrDirectory, const FFileStatData& StatData) = 0;
644
650 };
651
654
661 virtual bool IterateDirectory(const TCHAR* Directory, FDirectoryVisitor& Visitor) = 0;
662
669 virtual bool IterateDirectoryStat(const TCHAR* Directory, FDirectoryStatVisitor& Visitor) = 0;
670
677 CORE_API virtual bool FileJournalIsAvailable(const TCHAR* VolumeOrPath = nullptr,
678 ELogVerbosity::Type* OutErrorLevel = nullptr, FString* OutError = nullptr);
679
686 ELogVerbosity::Type* OutErrorLevel = nullptr, FString* OutError = nullptr) const;
687
696
699
716 CORE_API virtual bool FileJournalIterateDirectory(const TCHAR* Directory, FDirectoryJournalVisitorFunc Visitor, FString* OutError = nullptr);
717
724
745
753
758
765
772 CORE_API virtual IAsyncReadFileHandle* OpenAsyncRead(const TCHAR* Filename, bool bAllowWrite = false);
773
780 {
781 }
782
790 UE_DEPRECATED(5.6, "Please use OpenMappedEx instead")
792
802
804
807
814 CORE_API virtual bool IterateDirectory(const TCHAR* Directory, FDirectoryVisitorFunc Visitor);
815
823
830 CORE_API virtual bool IterateDirectoryRecursively(const TCHAR* Directory, FDirectoryVisitor& Visitor);
831
838 CORE_API virtual bool IterateDirectoryStatRecursively(const TCHAR* Directory, FDirectoryStatVisitor& Visitor);
839
847
855
863 CORE_API virtual void FindFiles(TArray<FString>& FoundFiles, const TCHAR* Directory, const TCHAR* FileExtension);
864
872 CORE_API virtual void FindFilesRecursively(TArray<FString>& FoundFiles, const TCHAR* Directory, const TCHAR* FileExtension);
873
879 CORE_API virtual bool DeleteDirectoryRecursively(const TCHAR* Directory);
880
882 CORE_API virtual bool CreateDirectoryTree(const TCHAR* Directory);
883
893
901 CORE_API virtual bool CopyDirectoryTree(const TCHAR* DestinationDirectory, const TCHAR* Source, bool bOverwriteAllExisting);
902
911
920
925 {
926 public:
928
930 virtual void FillPayload(FArchive& Payload) = 0;
931
934 };
935
944 virtual bool SendMessageToServer(const TCHAR* Message, IFileServerMessageHandler* Handler)
945 {
946 // by default, IPlatformFile's can't talk to a server
947 return false;
948 }
949
956 {
957 return false;
958 }
959
965 virtual void SetCreatePublicFiles(bool bCreatePublicFiles)
966 {
967 }
968
979 virtual int64 GetAllowedBytesToWriteThrottledStorage(const TCHAR* DestinationPath = nullptr)
980 {
981 return INT64_MAX;
982 }
983};
984
986{
987public:
989};
990
995{
996public:
997 //~ Begin IPlatformFile Interface
998 virtual bool ShouldBeUsed(IPlatformFile* Inner, const TCHAR* CmdLine) const override
999 {
1000 return true;
1001 }
1002 CORE_API virtual bool Initialize(IPlatformFile* Inner, const TCHAR* CmdLine) override;
1003 virtual IPlatformFile* GetLowerLevel() override
1004 {
1005 return nullptr;
1006 }
1008 {
1009 check(false); // can't override wrapped platform file for physical platform file
1010 }
1011 virtual const TCHAR* GetName() const override
1012 {
1014 }
1015 //~ End IPlatformFile Interface
1016};
1017
1018/* Interface class for FPakFile to allow usage from modules that cannot have a compile dependency on FPakFile. See FCoreDelegates */
1020{
1021public:
1022 virtual const FString& PakGetPakFilename() const = 0;
1027 virtual bool PakContains(const FString& Filename) const = 0;
1028 virtual int32 PakGetPakchunkIndex() const = 0;
1034 virtual const FString& PakGetMountPoint() const = 0;
1035
1036 virtual int32 GetNumFiles() const = 0;
1037};
1038
1039/* Pak Mount Options allow usage from modules that cannot have a compile dependency on FPakFile. See FCoreDelegates. */
1041{
1042 enum class EMountFlags : uint32
1043 {
1044 None = 0,
1045 WithSoftReferences = 1 << 0,
1046 ReportDecryptionFailure = 1 << 1,
1047 SkipContainerFile = 1 << 2,
1048 };
1049
1051};
1053
1055{
1056 constexpr uint32 Mult = 103;
1057 uint32 Hash = 0;
1058 const uint8* EndA = reinterpret_cast<const uint8*>(&A) + sizeof(FFileJournalFileHandle);
1059 for (const uint8* PA = reinterpret_cast<const uint8*>(&A); PA < EndA; ++PA)
1060 {
1061 Hash = Hash * Mult + *PA;
1062 }
1063 return Hash;
1064}
1065
1067{
1068 return 0 == FPlatformMemory::Memcmp(this, &Other, sizeof(FFileJournalFileHandle));
1069}
1070
1072{
1073 return 0 != FPlatformMemory::Memcmp(this, &Other, sizeof(FFileJournalFileHandle));
1074}
1075
1077 : bIsValid(false)
1078 , bIsDirectory(false)
1079 , bIsReparsePoint(false)
1080 , bIsReadOnly(false)
1081{
1082}
1083
#define check(expr)
Definition AssertionMacros.h:314
#define MAX_SPRINTF
Definition CString.h:15
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::int8 int8
An 8-bit signed integer.
Definition Platform.h:1121
#define TEXT(x)
Definition Platform.h:1272
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
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
#define UE_FORCEINLINE_HINT
Definition Platform.h:723
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
return true
Definition ExternalRpcRegistry.cpp:601
auto Response
Definition ExternalRpcRegistry.cpp:598
uint64 FFileJournalEntryHandle
Definition GenericPlatformFile.h:250
CORE_API const FFileJournalFileHandle FileJournalFileHandleInvalid
Definition GenericPlatformFile.cpp:1082
ESymlinkResult
Definition GenericPlatformFile.h:90
EPlatformFileRead
Definition GenericPlatformFile.h:59
constexpr FFileJournalId FileJournalIdInvalid
Definition GenericPlatformFile.h:245
uint64 FFileJournalId
Definition GenericPlatformFile.h:244
EFileJournalResult
Definition GenericPlatformFile.h:100
constexpr FFileJournalEntryHandle FileJournalEntryHandleInvalid
Definition GenericPlatformFile.h:251
EPlatformFileWrite
Definition GenericPlatformFile.h:70
EDirectoryVisitorFlags
Definition GenericPlatformFile.h:81
uint32 GetTypeHash(const FFileJournalFileHandle &)
Definition GenericPlatformFile.h:1054
EAsyncIOPriorityAndFlags
Definition GenericPlatformFile.h:31
@ AIOP_Low
Definition GenericPlatformFile.h:42
@ AIOP_Normal
Definition GenericPlatformFile.h:44
@ AIOP_MAX
Definition GenericPlatformFile.h:47
@ AIOP_NUM
Definition GenericPlatformFile.h:48
@ AIOP_MIN
Definition GenericPlatformFile.h:41
@ AIOP_High
Definition GenericPlatformFile.h:45
@ AIOP_BelowNormal
Definition GenericPlatformFile.h:43
@ AIOP_FLAG_PRECACHE
Definition GenericPlatformFile.h:35
@ AIOP_CriticalPath
Definition GenericPlatformFile.h:46
@ AIOP_FLAG_HW_TARGET_MEMORY
Definition GenericPlatformFile.h:38
@ AIOP_Precache
Definition GenericPlatformFile.h:51
@ AIOP_PRIORITY_MASK
Definition GenericPlatformFile.h:32
@ AIOP_FLAG_DONTCACHE
Definition GenericPlatformFile.h:36
const bool
Definition NetworkReplayStreaming.h:178
#define MAX_uint64
Definition NumericLimits.h:22
#define UE_ARRAY_COUNT(array)
Definition UnrealTemplate.h:212
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
uint32 Offset
Definition VulkanMemory.cpp:4033
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition GenericPlatformFile.h:284
FFileSystemError(FFileSystemError &&)=default
FFileSystemError(FString &&InErrorMessage, int32 InSystemErrorCode=0)
Definition GenericPlatformFile.h:293
FFileSystemError & operator=(const FFileSystemError &)=delete
FFileSystemError & operator=(FFileSystemError &&)=default
FFileSystemError(const FFileSystemError &)=delete
friend TStringBuilderBase< CharType > & operator<<(TStringBuilderBase< CharType > &Builder, const FFileSystemError &Error)
Definition GenericPlatformFile.h:317
FString GetMessage()
Definition GenericPlatformFile.h:300
FFileSystemError()=delete
Definition AsyncFileHandle.h:211
Definition GenericPlatformFile.h:117
virtual bool ReadAt(uint8 *Destination, int64 BytesToRead, int64 Offset)=0
virtual void ShrinkBuffers()
Definition GenericPlatformFile.h:179
virtual bool Flush(const bool bFullFlush=false)=0
virtual bool Seek(int64 NewPosition)=0
virtual ~IFileHandle()
Definition GenericPlatformFile.h:120
virtual bool Read(uint8 *Destination, int64 BytesToRead)=0
virtual int64 Tell()=0
virtual bool Truncate(int64 NewSize)=0
virtual bool Write(const uint8 *Source, int64 BytesToWrite)=0
virtual bool SeekFromEnd(int64 NewPositionRelativeToEnd=0)=0
virtual CORE_API int64 Size()
Definition GenericPlatformFile.cpp:578
Definition MappedFileHandle.h:115
Definition GenericPlatformFile.h:1020
virtual bool PakContains(const FString &Filename) const =0
virtual const FString & PakGetMountPoint() const =0
virtual int32 PakGetPakchunkIndex() const =0
virtual int32 GetNumFiles() const =0
virtual void PakVisitPrunedFilenames(IPlatformFile::FDirectoryVisitor &Visitor) const =0
virtual const FString & PakGetPakFilename() const =0
Definition GenericPlatformFile.h:995
virtual IPlatformFile * GetLowerLevel() override
Definition GenericPlatformFile.h:1003
virtual const TCHAR * GetName() const override
Definition GenericPlatformFile.h:1011
virtual bool ShouldBeUsed(IPlatformFile *Inner, const TCHAR *CmdLine) const override
Definition GenericPlatformFile.h:998
virtual void SetLowerLevel(IPlatformFile *NewLowerLevel) override
Definition GenericPlatformFile.h:1007
Definition GenericPlatformFile.h:623
virtual bool ShouldVisitLeafPathname(FStringView LeafPathname)
Definition GenericPlatformFile.h:632
virtual ~FDirectoryStatVisitor()
Definition GenericPlatformFile.h:625
CORE_API bool CallShouldVisitAndVisit(const TCHAR *FilenameOrDirectory, const FFileStatData &StatData)
Definition GenericPlatformFile.cpp:626
virtual bool Visit(const TCHAR *FilenameOrDirectory, const FFileStatData &StatData)=0
Definition GenericPlatformFile.h:576
virtual bool ShouldVisitLeafPathname(FStringView LeafPathname)
Definition GenericPlatformFile.h:590
FDirectoryVisitor(EDirectoryVisitorFlags InDirectoryVisitorFlags=EDirectoryVisitorFlags::None)
Definition GenericPlatformFile.h:578
EDirectoryVisitorFlags DirectoryVisitorFlags
Definition GenericPlatformFile.h:615
virtual ~FDirectoryVisitor()
Definition GenericPlatformFile.h:583
virtual bool Visit(const TCHAR *FilenameOrDirectory, bool bIsDirectory)=0
CORE_API bool CallShouldVisitAndVisit(const TCHAR *FilenameOrDirectory, bool bIsDirectory)
Definition GenericPlatformFile.cpp:616
UE_FORCEINLINE_HINT bool IsThreadSafe() const
Definition GenericPlatformFile.h:610
Definition GenericPlatformFile.h:925
virtual void FillPayload(FArchive &Payload)=0
virtual void ProcessResponse(FArchive &Response)=0
virtual ~IFileServerMessageHandler()
Definition GenericPlatformFile.h:927
Definition GenericPlatformFile.h:342
virtual bool HasMarkOfTheWeb(FStringView Filename, FString *OutSourceURL=nullptr)
Definition GenericPlatformFile.h:480
virtual CORE_API EFileJournalResult FileJournalReadModified(const TCHAR *VolumeName, const FFileJournalId &JournalIdOfStartingEntry, const FFileJournalEntryHandle &StartingJournalEntry, TMap< FFileJournalFileHandle, FString > &KnownDirectories, TSet< FString > &OutModifiedDirectories, FFileJournalEntryHandle &OutNextJournalEntry, FString *OutError=nullptr)
Definition GenericPlatformFile.cpp:1138
TFunctionRef< bool(const TCHAR *, const FFileStatData &)> FDirectoryStatVisitorFunc
Definition GenericPlatformFile.h:653
virtual CORE_API bool IterateDirectoryRecursively(const TCHAR *Directory, FDirectoryVisitor &Visitor)
Definition GenericPlatformFile.cpp:677
virtual int64 GetAllowedBytesToWriteThrottledStorage(const TCHAR *DestinationPath=nullptr)
Definition GenericPlatformFile.h:979
virtual CORE_API FString FileJournalGetVolumeName(FStringView InPath)
Definition GenericPlatformFile.cpp:1151
virtual CORE_API FString ConvertToAbsolutePathForExternalAppForWrite(const TCHAR *Filename)
Definition GenericPlatformFile.cpp:998
virtual bool ShouldBeUsed(IPlatformFile *Inner, const TCHAR *CmdLine) const
Definition GenericPlatformFile.h:375
virtual CORE_API uint64 FileJournalGetMaximumSize(const TCHAR *VolumeOrPath=nullptr, ELogVerbosity::Type *OutErrorLevel=nullptr, FString *OutError=nullptr) const
Definition GenericPlatformFile.cpp:1098
virtual void SetCreatePublicFiles(bool bCreatePublicFiles)
Definition GenericPlatformFile.h:965
virtual CORE_API bool CopyFile(const TCHAR *To, const TCHAR *From, EPlatformFileRead ReadFlags=EPlatformFileRead::None, EPlatformFileWrite WriteFlags=EPlatformFileWrite::None)
Definition GenericPlatformFile.cpp:870
CORE_API IPlatformFile()
virtual void AddLocalDirectories(TArray< FString > &LocalDirectories)
Definition GenericPlatformFile.h:411
virtual void InitializeAfterSetActive()
Definition GenericPlatformFile.h:391
virtual IPlatformFile * GetLowerLevel()=0
virtual bool DoesCreatePublicFiles()
Definition GenericPlatformFile.h:955
virtual CORE_API FFileOpenResult OpenRead(const TCHAR *Filename, EOpenReadFlags Flags)
Definition GenericPlatformFile.cpp:497
static CORE_API IPlatformFile & GetPlatformPhysical()
Definition IOSPlatformFile.cpp:1045
EOpenWriteFlags
Definition GenericPlatformFile.h:543
static CORE_API const TCHAR * GetPhysicalTypeName()
Definition GenericPlatformFile.cpp:587
virtual CORE_API IMappedFileHandle * OpenMapped(const TCHAR *Filename)
Definition GenericPlatformFile.cpp:540
virtual IFileHandle * OpenWrite(const TCHAR *Filename, bool bAppend=false, bool bAllowRead=false)=0
virtual FFileStatData GetStatData(const TCHAR *FilenameOrDirectory)=0
virtual bool SetMarkOfTheWeb(FStringView Filename, bool bNewStatus, const FString *InSourceURL=nullptr)
Definition GenericPlatformFile.h:492
virtual CORE_API FFileOpenAsyncResult OpenAsyncRead(const TCHAR *Filename, EOpenReadFlags Flags)
Definition GenericPlatformFile.cpp:517
virtual bool IterateDirectoryStat(const TCHAR *Directory, FDirectoryStatVisitor &Visitor)=0
virtual bool MoveFile(const TCHAR *To, const TCHAR *From)=0
virtual ESymlinkResult IsSymlink(const TCHAR *Filename)
Definition GenericPlatformFile.h:469
virtual IFileHandle * OpenRead(const TCHAR *Filename, bool bAllowWrite=false)=0
virtual bool IsSandboxEnabled() const
Definition GenericPlatformFile.h:366
virtual CORE_API ~IPlatformFile()
virtual void BypassSecurity(bool bInBypass)
Definition GenericPlatformFile.h:419
virtual CORE_API bool DeleteDirectoryRecursively(const TCHAR *Directory)
Definition GenericPlatformFile.cpp:822
virtual void SetAsyncMinimumPriority(EAsyncIOPriorityAndFlags MinPriority)
Definition GenericPlatformFile.h:779
virtual bool IterateDirectory(const TCHAR *Directory, FDirectoryVisitor &Visitor)=0
virtual bool DeleteFiles(const TArrayView< const TCHAR * > &Filenames)
Definition GenericPlatformFile.h:442
virtual bool IsReadOnly(const TCHAR *Filename)=0
virtual CORE_API void GetTimeStampPair(const TCHAR *PathA, const TCHAR *PathB, FDateTime &OutTimeStampA, FDateTime &OutTimeStampB)
Definition GenericPlatformFile.cpp:592
virtual bool DeleteDirectory(const TCHAR *Directory)=0
virtual bool Initialize(IPlatformFile *Inner, const TCHAR *CmdLine)=0
virtual void SetTimeStamp(const TCHAR *Filename, FDateTime DateTime)=0
virtual void Tick()
Definition GenericPlatformFile.h:428
virtual IFileHandle * OpenReadNoBuffering(const TCHAR *Filename, bool bAllowWrite=false)
Definition GenericPlatformFile.h:536
virtual bool DirectoryExists(const TCHAR *Directory)=0
virtual void InitializeNewAsyncIO()
Definition GenericPlatformFile.h:406
TFunctionRef< bool(const TCHAR *, const FFileJournalData &)> FDirectoryJournalVisitorFunc
Definition GenericPlatformFile.h:698
virtual void MakeUniquePakFilesForTheseFiles(const TArray< TArray< FString > > &InFiles)
Definition GenericPlatformFile.h:401
virtual const TCHAR * GetName() const =0
virtual bool DeleteFile(const TCHAR *Filename)=0
virtual CORE_API FFileJournalData FileJournalGetFileData(const TCHAR *FilenameOrDirectory, FString *OutError=nullptr)
Definition GenericPlatformFile.cpp:1133
virtual bool SetReadOnly(const TCHAR *Filename, bool bNewReadOnlyValue)=0
virtual CORE_API EFileJournalResult FileJournalGetLatestEntry(const TCHAR *VolumeName, FFileJournalId &OutJournalId, FFileJournalEntryHandle &OutEntryHandle, FString *OutError=nullptr)
Definition GenericPlatformFile.cpp:1112
virtual void SetSandboxEnabled(bool bInEnabled)
Definition GenericPlatformFile.h:357
virtual CORE_API bool FileJournalIterateDirectory(const TCHAR *Directory, FDirectoryJournalVisitorFunc Visitor, FString *OutError=nullptr)
Definition GenericPlatformFile.cpp:1124
TFunctionRef< bool(const TCHAR *, bool)> FDirectoryVisitorFunc
Definition GenericPlatformFile.h:619
virtual CORE_API void FindFiles(TArray< FString > &FoundFiles, const TCHAR *Directory, const TCHAR *FileExtension)
Definition GenericPlatformFile.cpp:810
virtual bool FileExists(const TCHAR *Filename)=0
virtual int64 FileSize(const TCHAR *Filename)=0
virtual CORE_API bool FileJournalIsAvailable(const TCHAR *VolumeOrPath=nullptr, ELogVerbosity::Type *OutErrorLevel=nullptr, FString *OutError=nullptr)
Definition GenericPlatformFile.cpp:1084
virtual CORE_API bool CreateDirectoryTree(const TCHAR *Directory)
Definition GenericPlatformFile.cpp:1033
virtual void SetLowerLevel(IPlatformFile *NewLowerLevel)=0
virtual CORE_API void FindFilesRecursively(TArray< FString > &FoundFiles, const TCHAR *Directory, const TCHAR *FileExtension)
Definition GenericPlatformFile.cpp:816
virtual bool SendMessageToServer(const TCHAR *Message, IFileServerMessageHandler *Handler)
Definition GenericPlatformFile.h:944
virtual bool CreateDirectory(const TCHAR *Directory)=0
EOpenReadFlags
Definition GenericPlatformFile.h:496
virtual CORE_API FString ConvertToAbsolutePathForExternalAppForRead(const TCHAR *Filename)
Definition GenericPlatformFile.cpp:993
virtual FString GetFilenameOnDisk(const TCHAR *Filename)=0
virtual CORE_API FDateTime GetTimeStampLocal(const TCHAR *Filename)
Definition GenericPlatformFile.cpp:605
virtual CORE_API FOpenMappedResult OpenMappedEx(const TCHAR *Filename, EOpenReadFlags OpenOptions=EOpenReadFlags::None, int64 MaximumSize=0)
Definition GenericPlatformFile.cpp:551
virtual CORE_API bool IterateDirectoryStatRecursively(const TCHAR *Directory, FDirectoryStatVisitor &Visitor)
Definition GenericPlatformFile.cpp:734
virtual FDateTime GetTimeStamp(const TCHAR *Filename)=0
virtual FDateTime GetAccessTimeStamp(const TCHAR *Filename)=0
virtual CORE_API bool CopyDirectoryTree(const TCHAR *DestinationDirectory, const TCHAR *Source, bool bOverwriteAllExisting)
Definition GenericPlatformFile.cpp:913
virtual void InitializeAfterProjectFilePath()
Definition GenericPlatformFile.h:396
virtual FFileOpenResult OpenReadNoBuffering(const TCHAR *Filename, EOpenReadFlags Flags)
Definition GenericPlatformFile.h:531
Definition GenericPlatformFile.h:986
virtual void SetLowerLevel(IFileHandle *LowerLevelHandle)=0
Definition ArrayView.h:139
Definition Array.h:670
Definition AssetRegistryState.h:50
Definition UnrealString.h.inl:34
Definition StringBuilder.h:79
Definition ValueOrError.h:58
Definition GenericPlatformFile.h:25
Type
Definition LogVerbosity.h:17
@ false
Definition radaudio_common.h:23
static CORE_API const TCHAR * GetSystemErrorMessage(TCHAR *OutBuffer, int32 BufferCount, int32 Error)
Definition AndroidPlatformMisc.cpp:719
Definition DateTime.h:76
Definition GenericPlatformFile.h:271
bool bIsValid
Definition GenericPlatformFile.h:276
FFileJournalData()
Definition GenericPlatformFile.h:1076
bool bIsReparsePoint
Definition GenericPlatformFile.h:278
FDateTime ModificationTime
Definition GenericPlatformFile.h:274
bool bIsDirectory
Definition GenericPlatformFile.h:277
bool bIsReadOnly
Definition GenericPlatformFile.h:279
FFileJournalFileHandle JournalHandle
Definition GenericPlatformFile.h:275
Definition GenericPlatformFile.h:257
bool operator==(const FFileJournalFileHandle &Other) const
Definition GenericPlatformFile.h:1066
CORE_API FString ToString()
Definition GenericPlatformFile.cpp:1041
bool operator!=(const FFileJournalFileHandle &Other) const
Definition GenericPlatformFile.h:1071
uint8 Bytes[20]
Definition GenericPlatformFile.h:262
Definition GenericPlatformFile.h:195
FFileStatData()
Definition GenericPlatformFile.h:196
bool bIsReadOnly
Definition GenericPlatformFile.h:234
FFileStatData(FDateTime InCreationTime, FDateTime InAccessTime, FDateTime InModificationTime, const int64 InFileSize, const bool InIsDirectory, const bool InIsReadOnly)
Definition GenericPlatformFile.h:207
int64 FileSize
Definition GenericPlatformFile.h:228
FDateTime ModificationTime
Definition GenericPlatformFile.h:225
FDateTime AccessTime
Definition GenericPlatformFile.h:222
bool bIsDirectory
Definition GenericPlatformFile.h:231
FDateTime CreationTime
Definition GenericPlatformFile.h:219
bool bIsValid
Definition GenericPlatformFile.h:237
static UE_FORCEINLINE_HINT int32 Memcmp(const void *Buf1, const void *Buf2, SIZE_T Count)
Definition GenericPlatformMemory.h:576
Definition GenericPlatformFile.h:1041
EMountFlags MountFlags
Definition GenericPlatformFile.h:1050
EMountFlags
Definition GenericPlatformFile.h:1043