UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
WindowsPlatformFilePrivate.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6
9#include "Misc/DateTime.h"
10#include "Misc/StringBuilder.h"
12
13#define USE_WINDOWS_ASYNC_IMPL 0
14#define USE_OVERLAPPED_IO (!IS_PROGRAM && !WITH_EDITOR) // Use straightforward synchronous I/O in cooker/editor
15
20{
21public:
29
31 {
32 public:
33 explicit FNormalizedFilename(const TCHAR* Filename);
34 explicit FNormalizedFilename(FStringView Filename);
35 explicit FNormalizedFilename(FStringView Dir, FStringView Filename);
36 };
37
39 {
40 public:
41 explicit FNormalizedDirectory(const TCHAR* Directory);
42 };
43
44public:
45 //~ For visibility of overloads we don't override
48
49 virtual bool FileExists(const TCHAR* Filename) override;
50 virtual int64 FileSize(const TCHAR* Filename) override;
51 virtual bool DeleteFile(const TCHAR* Filename) override;
52 virtual bool IsReadOnly(const TCHAR* Filename) override;
53 virtual bool MoveFile(const TCHAR* To, const TCHAR* From) override;
54 virtual bool SetReadOnly(const TCHAR* Filename, bool bNewReadOnlyValue) override;
55 virtual FDateTime GetTimeStamp(const TCHAR* Filename) override;
56 virtual void SetTimeStamp(const TCHAR* Filename, FDateTime DateTime) override;
57 virtual FDateTime GetAccessTimeStamp(const TCHAR* Filename) override;
58 virtual FString GetFilenameOnDisk(const TCHAR* Filename) override;
59 virtual ESymlinkResult IsSymlink(const TCHAR* Filename) override;
60 virtual bool HasMarkOfTheWeb(FStringView Filename, FString* OutSourceURL = nullptr) override;
61 virtual bool SetMarkOfTheWeb(FStringView Filename, bool bNewStatus, const FString* InSourceURL = nullptr) override;
62
63#if USE_WINDOWS_ASYNC_IMPL
64 virtual IAsyncReadFileHandle* OpenAsyncRead(const TCHAR* Filename, bool bAllowWrite = false) override;
65#endif
66
67 virtual FFileOpenResult OpenRead(const TCHAR* Filename, EOpenReadFlags Flags) override;
68 virtual IFileHandle* OpenRead(const TCHAR* Filename, bool bAllowWrite = false) override;
69 virtual FFileOpenResult OpenReadNoBuffering(const TCHAR* Filename, EOpenReadFlags Flags) override;
70 virtual IFileHandle* OpenReadNoBuffering(const TCHAR* Filename, bool bAllowWrite = false) override;
71 virtual IFileHandle* OpenWrite(const TCHAR* Filename, bool bAppend = false, bool bAllowRead = false) override;
72 virtual FOpenMappedResult OpenMappedEx(const TCHAR* Filename, EOpenReadFlags OpenOptions = EOpenReadFlags::None, int64 MaximumSize = 0) override;
73 virtual bool DirectoryExists(const TCHAR* Directory) override;
74 virtual bool CreateDirectory(const TCHAR* Directory) override;
75 virtual bool DeleteDirectory(const TCHAR* Directory) override;
76 virtual FFileStatData GetStatData(const TCHAR* FilenameOrDirectory) override;
77 virtual bool IterateDirectory(const TCHAR* Directory, FDirectoryVisitor& Visitor) override;
78 virtual bool IterateDirectoryStat(const TCHAR* Directory, FDirectoryStatVisitor& Visitor) override;
79
80 // Forced not inline to reduce stack space usage since IterateDirectoryCommon might be recursive
81 FORCENOINLINE static HANDLE FindFirstFileWithWildcard(const TCHAR* Directory, WIN32_FIND_DATAW& OutData);
82 bool IterateDirectoryCommon(const TCHAR* Directory, const TFunctionRef<bool(const WIN32_FIND_DATAW&)>& Visitor);
83
84 virtual bool FileJournalIsAvailable(const TCHAR* VolumeOrPath = nullptr, ELogVerbosity::Type* OutErrorLevel = nullptr,
85 FString* OutError = nullptr) override;
87 FString* OutError = nullptr) const override;
89 FFileJournalEntryHandle& OutEntryHandle, FString* OutError = nullptr) override;
90 virtual bool FileJournalIterateDirectory(const TCHAR* Directory, FDirectoryJournalVisitorFunc Visitor, FString* OutError = nullptr) override;
91 virtual FFileJournalData FileJournalGetFileData(const TCHAR* FilenameOrDirectory, FString* OutError = nullptr) override;
92 virtual EFileJournalResult FileJournalReadModified(const TCHAR* VolumeName,
95 FFileJournalEntryHandle& OutNextJournalEntry, FString* OutError = nullptr) override;
96 virtual FString FileJournalGetVolumeName(FStringView InPath) override;
97};
98
100{
101
105
106} // namespace UE::WindowsPlatformFile::Private
#define FORCENOINLINE
Definition AndroidPlatform.h:142
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
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
EDayOfWeek
Definition DateTime.h:22
uint64 FFileJournalEntryHandle
Definition GenericPlatformFile.h:250
ESymlinkResult
Definition GenericPlatformFile.h:90
uint64 FFileJournalId
Definition GenericPlatformFile.h:244
EFileJournalResult
Definition GenericPlatformFile.h:100
Definition WindowsPlatformFilePrivate.h:39
Definition WindowsPlatformFilePrivate.h:31
Definition WindowsPlatformFilePrivate.h:20
virtual IFileHandle * OpenWrite(const TCHAR *Filename, bool bAppend=false, bool bAllowRead=false) override
Definition WindowsPlatformFile.cpp:1552
virtual bool SetReadOnly(const TCHAR *Filename, bool bNewReadOnlyValue) override
Definition WindowsPlatformFile.cpp:1221
static void NormalizeWindowsPath(FStringBuilderBase &Path, bool bIsFilename)
Definition WindowsPlatformFile.cpp:1105
virtual void SetTimeStamp(const TCHAR *Filename, FDateTime DateTime) override
Definition WindowsPlatformFile.cpp:1237
virtual bool IterateDirectory(const TCHAR *Directory, FDirectoryVisitor &Visitor) override
Definition WindowsPlatformFile.cpp:1715
virtual bool HasMarkOfTheWeb(FStringView Filename, FString *OutSourceURL=nullptr) override
Definition WindowsPlatformFile.cpp:1362
virtual bool IsReadOnly(const TCHAR *Filename) override
Definition WindowsPlatformFile.cpp:1206
virtual FFileStatData GetStatData(const TCHAR *FilenameOrDirectory) override
Definition WindowsPlatformFile.cpp:1686
virtual uint64 FileJournalGetMaximumSize(const TCHAR *VolumeOrPath, ELogVerbosity::Type *OutErrorLevel=nullptr, FString *OutError=nullptr) const override
Definition WindowsPlatformFileJournal.cpp:969
virtual bool IterateDirectoryStat(const TCHAR *Directory, FDirectoryStatVisitor &Visitor) override
Definition WindowsPlatformFile.cpp:1729
virtual bool MoveFile(const TCHAR *To, const TCHAR *From) override
Definition WindowsPlatformFile.cpp:1216
virtual FFileOpenResult OpenRead(const TCHAR *Filename, EOpenReadFlags Flags) override
Definition WindowsPlatformFile.cpp:1441
static FORCENOINLINE HANDLE FindFirstFileWithWildcard(const TCHAR *Directory, WIN32_FIND_DATAW &OutData)
Definition WindowsPlatformFile.cpp:1760
virtual FDateTime GetAccessTimeStamp(const TCHAR *Filename) override
Definition WindowsPlatformFile.cpp:1271
virtual FString FileJournalGetVolumeName(FStringView InPath) override
Definition WindowsPlatformFileJournal.cpp:57
virtual FDateTime GetTimeStamp(const TCHAR *Filename) override
Definition WindowsPlatformFile.cpp:1226
virtual bool DeleteDirectory(const TCHAR *Directory) override
Definition WindowsPlatformFile.cpp:1674
bool IterateDirectoryCommon(const TCHAR *Directory, const TFunctionRef< bool(const WIN32_FIND_DATAW &)> &Visitor)
Definition WindowsPlatformFile.cpp:1765
virtual bool DeleteFile(const TCHAR *Filename) override
Definition WindowsPlatformFile.cpp:1200
virtual EFileJournalResult FileJournalGetLatestEntry(const TCHAR *VolumeName, FFileJournalId &OutJournalId, FFileJournalEntryHandle &OutEntryHandle, FString *OutError=nullptr) override
Definition WindowsPlatformFileJournal.cpp:990
virtual bool SetMarkOfTheWeb(FStringView Filename, bool bNewStatus, const FString *InSourceURL=nullptr) override
Definition WindowsPlatformFile.cpp:1387
virtual bool FileExists(const TCHAR *Filename) override
Definition WindowsPlatformFile.cpp:1174
virtual FString GetFilenameOnDisk(const TCHAR *Filename) override
Definition WindowsPlatformFile.cpp:1282
virtual ESymlinkResult IsSymlink(const TCHAR *Filename) override
Definition WindowsPlatformFile.cpp:1352
virtual int64 FileSize(const TCHAR *Filename) override
Definition WindowsPlatformFile.cpp:1184
virtual FFileJournalData FileJournalGetFileData(const TCHAR *FilenameOrDirectory, FString *OutError=nullptr) override
Definition WindowsPlatformFileJournal.cpp:1011
virtual EFileJournalResult FileJournalReadModified(const TCHAR *VolumeName, const FFileJournalId &JournalIdOfStartingEntry, const FFileJournalEntryHandle &StartingJournalEntry, TMap< FFileJournalFileHandle, FString > &KnownDirectories, TSet< FString > &OutModifiedDirectories, FFileJournalEntryHandle &OutNextJournalEntry, FString *OutError=nullptr) override
Definition WindowsPlatformFileJournal.cpp:1016
virtual bool FileJournalIterateDirectory(const TCHAR *Directory, FDirectoryJournalVisitorFunc Visitor, FString *OutError=nullptr) override
Definition WindowsPlatformFileJournal.cpp:1005
virtual FOpenMappedResult OpenMappedEx(const TCHAR *Filename, EOpenReadFlags OpenOptions=EOpenReadFlags::None, int64 MaximumSize=0) override
Definition WindowsPlatformFile.cpp:1590
virtual bool CreateDirectory(const TCHAR *Directory) override
Definition WindowsPlatformFile.cpp:1669
virtual FFileOpenResult OpenReadNoBuffering(const TCHAR *Filename, EOpenReadFlags Flags) override
Definition WindowsPlatformFile.cpp:1502
virtual bool DirectoryExists(const TCHAR *Directory) override
Definition WindowsPlatformFile.cpp:1657
virtual bool FileJournalIsAvailable(const TCHAR *VolumeOrPath=nullptr, ELogVerbosity::Type *OutErrorLevel=nullptr, FString *OutError=nullptr) override
Definition WindowsPlatformFileJournal.cpp:949
Definition AsyncFileHandle.h:211
Definition GenericPlatformFile.h:117
Definition GenericPlatformFile.h:995
Definition GenericPlatformFile.h:623
Definition GenericPlatformFile.h:576
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 IterateDirectory(const TCHAR *Directory, FDirectoryVisitor &Visitor)=0
EOpenReadFlags
Definition GenericPlatformFile.h:496
Definition AssetRegistryState.h:50
Definition UnrealString.h.inl:34
Definition StringBuilder.h:509
Definition ValueOrError.h:58
Type
Definition LogVerbosity.h:17
Definition WindowsPlatformFile.cpp:83
int32 UEDayOfWeekToWindowsSystemTimeDayOfWeek(const EDayOfWeek InDayOfWeek)
Definition WindowsPlatformFile.cpp:85
FDateTime WindowsFileTimeToUEDateTime(const FILETIME &InFileTime)
Definition WindowsPlatformFile.cpp:110
FILETIME UEDateTimeToWindowsFileTime(const FDateTime &InDateTime)
Definition WindowsPlatformFile.cpp:124
Definition DateTime.h:76
Definition GenericPlatformFile.h:271
Definition GenericPlatformFile.h:195