UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IPlatformFileSandboxWrapper.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3
4#pragma once
5
6#include "Containers/Array.h"
8#include "CoreMinimal.h"
10#include "HAL/Platform.h"
11#include "Logging/LogMacros.h"
12#include "Misc/DateTime.h"
13#include "Misc/Paths.h"
14#include "Templates/UniquePtr.h"
15
18
23
25{
27 IPlatformFile* LowerLevel;
29 FString SandboxDirectory;
31 FString GameSandboxDirectoryName;
33 FString RelativeRootDirectory;
35 FString AbsoluteRootDirectory;
37 FString AbsoluteGameDirectory;
39 FString AbsolutePathToGameDirectory;
41 TArray<FString> FileExclusionWildcards;
43 TArray<FString> DirectoryExclusionWildcards;
44 bool bEntireEngineWillUseThisSandbox;
45
51 bool bSandboxEnabled;
52
58 FString InjectedSourceDirectory;
59 FString InjectedSourceDirectoryParent;
60 FString InjectedTargetDirectory;
61 FString InjectedTargetDirectoryParent;
62
67 bool bSandboxOnly;
68
75 SANDBOXFILE_API bool WipeSandboxFolder( const TCHAR* AbsolutePath );
76
87 SANDBOXFILE_API void FindFiles( TArray<FString>& Result, const TCHAR* InFilename, bool Files, bool Directories );
88
91
101 SANDBOXFILE_API bool DeleteDirectory( const TCHAR* Path, bool Tree );
102
110 SANDBOXFILE_API bool OkForInnerAccess(const TCHAR* InFilenameOrDirectoryName, bool bIsDirectory = false) const;
111
112 static const TCHAR* GetTypeName()
113 {
114 return TEXT("SandboxFile");
115 }
116
122
123public:
125
127
128 //~ For visibility of overloads we don't override
133
139 SANDBOXFILE_API virtual void SetSandboxEnabled(bool bInEnabled) override;
140
146 SANDBOXFILE_API virtual bool IsSandboxEnabled() const override;
147
148 SANDBOXFILE_API virtual bool ShouldBeUsed(IPlatformFile* Inner, const TCHAR* CmdLine) const override;
149 SANDBOXFILE_API virtual bool Initialize(IPlatformFile* Inner, const TCHAR* CmdLine) override;
150
151 SANDBOXFILE_API virtual IPlatformFile* GetLowerLevel() override;
153 SANDBOXFILE_API virtual const TCHAR* GetName() const override;
154
162 SANDBOXFILE_API FString ConvertToSandboxPath(const TCHAR* Filename) const;
163 SANDBOXFILE_API FString ConvertFromSandboxPath(const TCHAR* Filename) const;
164
166 SANDBOXFILE_API const FString& GetSandboxDirectory() const;
167
170
172 SANDBOXFILE_API const FString& GetAbsoluteRootDirectory() const;
173
176
179
186 SANDBOXFILE_API void AddExclusion(const TCHAR* Wildcard, bool bIsDirectory = false);
187 SANDBOXFILE_API void RemoveExclusion(const TCHAR* Wildcard, bool bIsDirectory = false);
188
191
192 // IPlatformFile Interface
193
194 SANDBOXFILE_API virtual bool FileExists(const TCHAR* Filename) override;
195 SANDBOXFILE_API virtual int64 FileSize(const TCHAR* Filename) override;
196 SANDBOXFILE_API virtual bool DeleteFile(const TCHAR* Filename) override;
197 SANDBOXFILE_API virtual bool IsReadOnly(const TCHAR* Filename) override;
198 SANDBOXFILE_API virtual bool MoveFile(const TCHAR* To, const TCHAR* From) override;
199 SANDBOXFILE_API virtual bool SetReadOnly(const TCHAR* Filename, bool bNewReadOnlyValue) override;
200 SANDBOXFILE_API virtual FDateTime GetTimeStamp(const TCHAR* Filename) override;
201 SANDBOXFILE_API virtual void SetTimeStamp(const TCHAR* Filename, FDateTime DateTime) override;
202 SANDBOXFILE_API virtual FDateTime GetAccessTimeStamp(const TCHAR* Filename) override;
203 SANDBOXFILE_API virtual FString GetFilenameOnDisk(const TCHAR* Filename) override;
204 SANDBOXFILE_API virtual IFileHandle* OpenRead(const TCHAR* Filename, bool bAllowWrite = false) override;
205 SANDBOXFILE_API virtual IFileHandle* OpenWrite(const TCHAR* Filename, bool bAppend = false, bool bAllowRead = false) override;
206 SANDBOXFILE_API virtual bool DirectoryExists(const TCHAR* Directory) override;
207 SANDBOXFILE_API virtual bool CreateDirectory(const TCHAR* Directory) override;
208 SANDBOXFILE_API virtual bool DeleteDirectory(const TCHAR* Directory) override;
210
211 SANDBOXFILE_API virtual bool IterateDirectory(const TCHAR* Directory, IPlatformFile::FDirectoryVisitor& Visitor) override;
212 SANDBOXFILE_API virtual bool IterateDirectoryRecursively(const TCHAR* Directory, IPlatformFile::FDirectoryVisitor& Visitor) override;
213
214 SANDBOXFILE_API virtual bool IterateDirectoryStat(const TCHAR* Directory, IPlatformFile::FDirectoryStatVisitor& Visitor) override;
215 SANDBOXFILE_API virtual bool IterateDirectoryStatRecursively(const TCHAR* Directory, IPlatformFile::FDirectoryStatVisitor& Visitor) override;
216
217 SANDBOXFILE_API virtual bool DeleteDirectoryRecursively(const TCHAR* Directory) override;
218 SANDBOXFILE_API virtual bool CreateDirectoryTree(const TCHAR* Directory) override;
219
221 SANDBOXFILE_API virtual FString ConvertToAbsolutePathForExternalAppForRead( const TCHAR* Filename ) override;
222 SANDBOXFILE_API virtual FString ConvertToAbsolutePathForExternalAppForWrite( const TCHAR* Filename ) override;
223
224 SANDBOXFILE_API virtual IAsyncReadFileHandle* OpenAsyncRead(const TCHAR* Filename, bool bAllowWrite = false) override;
226
227 UE_DEPRECATED(5.6, "Please use overloaded value that returns error values properly")
228 SANDBOXFILE_API virtual IMappedFileHandle* OpenMapped(const TCHAR* Filename) override;
229 SANDBOXFILE_API virtual FOpenMappedResult OpenMappedEx(const TCHAR* Filename, EOpenReadFlags OpenOptions = EOpenReadFlags::None, int64 MaximumSize = 0) override;
230
231 friend class FSandboxVisitor;
233};
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
#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
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EPlatformFileRead
Definition GenericPlatformFile.h:59
EPlatformFileWrite
Definition GenericPlatformFile.h:70
EAsyncIOPriorityAndFlags
Definition GenericPlatformFile.h:31
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
Definition IPlatformFileSandboxWrapper.h:25
SANDBOXFILE_API void RemoveExclusion(const TCHAR *Wildcard, bool bIsDirectory=false)
Definition IPlatformFileSandboxWrapper.cpp:517
SANDBOXFILE_API const FString & GetAbsoluteRootDirectory() const
Definition IPlatformFileSandboxWrapper.cpp:200
virtual SANDBOXFILE_API FString ConvertToAbsolutePathForExternalAppForWrite(const TCHAR *Filename) override
Definition IPlatformFileSandboxWrapper.cpp:421
SANDBOXFILE_API FString ConvertToSandboxPath(const TCHAR *Filename) const
Definition IPlatformFileSandboxWrapper.cpp:214
virtual SANDBOXFILE_API bool FileExists(const TCHAR *Filename) override
Definition IPlatformFileSandboxWrapper.cpp:536
virtual SANDBOXFILE_API bool IterateDirectoryStatRecursively(const TCHAR *Directory, IPlatformFile::FDirectoryStatVisitor &Visitor) override
Definition IPlatformFileSandboxWrapper.cpp:934
virtual SANDBOXFILE_API FDateTime GetTimeStamp(const TCHAR *Filename) override
Definition IPlatformFileSandboxWrapper.cpp:613
virtual SANDBOXFILE_API IFileHandle * OpenWrite(const TCHAR *Filename, bool bAppend=false, bool bAllowRead=false) override
Definition IPlatformFileSandboxWrapper.cpp:678
virtual SANDBOXFILE_API bool IsSandboxEnabled() const override
Definition IPlatformFileSandboxWrapper.cpp:485
virtual SANDBOXFILE_API bool IterateDirectoryStat(const TCHAR *Directory, IPlatformFile::FDirectoryStatVisitor &Visitor) override
Definition IPlatformFileSandboxWrapper.cpp:921
SANDBOXFILE_API FString ConvertFromSandboxPath(const TCHAR *Filename) const
Definition IPlatformFileSandboxWrapper.cpp:301
virtual SANDBOXFILE_API void SetLowerLevel(IPlatformFile *NewLowerLevel) override
Definition IPlatformFileSandboxWrapper.cpp:495
virtual SANDBOXFILE_API FString GetFilenameOnDisk(const TCHAR *Filename) override
Definition IPlatformFileSandboxWrapper.cpp:653
virtual SANDBOXFILE_API void SetSandboxEnabled(bool bInEnabled) override
Definition IPlatformFileSandboxWrapper.cpp:480
SANDBOXFILE_API const FString & GetAbsoluteGameDirectory()
Definition IPlatformFileSandboxWrapper.cpp:436
virtual SANDBOXFILE_API bool IterateDirectory(const TCHAR *Directory, IPlatformFile::FDirectoryVisitor &Visitor) override
Definition IPlatformFileSandboxWrapper.cpp:806
virtual SANDBOXFILE_API bool CopyFile(const TCHAR *To, const TCHAR *From, EPlatformFileRead ReadFlags=EPlatformFileRead::None, EPlatformFileWrite WriteFlags=EPlatformFileWrite::None) override
Definition IPlatformFileSandboxWrapper.cpp:959
virtual SANDBOXFILE_API bool DirectoryExists(const TCHAR *Directory) override
Definition IPlatformFileSandboxWrapper.cpp:684
virtual SANDBOXFILE_API FOpenMappedResult OpenMappedEx(const TCHAR *Filename, EOpenReadFlags OpenOptions=EOpenReadFlags::None, int64 MaximumSize=0) override
Definition IPlatformFileSandboxWrapper.cpp:999
virtual SANDBOXFILE_API bool IterateDirectoryRecursively(const TCHAR *Directory, IPlatformFile::FDirectoryVisitor &Visitor) override
Definition IPlatformFileSandboxWrapper.cpp:819
virtual SANDBOXFILE_API ~FSandboxPlatformFile()
Definition IPlatformFileSandboxWrapper.cpp:47
virtual SANDBOXFILE_API FString ConvertToAbsolutePathForExternalAppForRead(const TCHAR *Filename) override
Definition IPlatformFileSandboxWrapper.cpp:408
virtual SANDBOXFILE_API bool SetReadOnly(const TCHAR *Filename, bool bNewReadOnlyValue) override
Definition IPlatformFileSandboxWrapper.cpp:602
virtual SANDBOXFILE_API IMappedFileHandle * OpenMapped(const TCHAR *Filename) override
Definition IPlatformFileSandboxWrapper.cpp:989
virtual SANDBOXFILE_API bool CreateDirectory(const TCHAR *Directory) override
Definition IPlatformFileSandboxWrapper.cpp:694
virtual SANDBOXFILE_API const TCHAR * GetName() const override
Definition IPlatformFileSandboxWrapper.cpp:500
virtual SANDBOXFILE_API bool DeleteDirectoryRecursively(const TCHAR *Directory) override
Definition IPlatformFileSandboxWrapper.cpp:947
SANDBOXFILE_API const FString & GetAbsolutePathToGameDirectory()
Definition IPlatformFileSandboxWrapper.cpp:426
SANDBOXFILE_API const FString & GetGameSandboxDirectoryName()
Definition IPlatformFileSandboxWrapper.cpp:205
virtual SANDBOXFILE_API IAsyncReadFileHandle * OpenAsyncRead(const TCHAR *Filename, bool bAllowWrite=false) override
Definition IPlatformFileSandboxWrapper.cpp:974
virtual SANDBOXFILE_API bool DeleteFile(const TCHAR *Filename) override
Definition IPlatformFileSandboxWrapper.cpp:558
virtual SANDBOXFILE_API FDateTime GetAccessTimeStamp(const TCHAR *Filename) override
Definition IPlatformFileSandboxWrapper.cpp:638
virtual SANDBOXFILE_API bool ShouldBeUsed(IPlatformFile *Inner, const TCHAR *CmdLine) const override
Definition IPlatformFileSandboxWrapper.cpp:51
SANDBOXFILE_API void SetSandboxOnly(bool bInSandboxOnly)
Definition IPlatformFileSandboxWrapper.cpp:529
virtual SANDBOXFILE_API int64 FileSize(const TCHAR *Filename) override
Definition IPlatformFileSandboxWrapper.cpp:547
virtual SANDBOXFILE_API bool CreateDirectoryTree(const TCHAR *Directory) override
Definition IPlatformFileSandboxWrapper.cpp:953
virtual SANDBOXFILE_API IFileHandle * OpenRead(const TCHAR *Filename, bool bAllowWrite=false) override
Definition IPlatformFileSandboxWrapper.cpp:668
virtual SANDBOXFILE_API void SetAsyncMinimumPriority(EAsyncIOPriorityAndFlags Priority) override
Definition IPlatformFileSandboxWrapper.cpp:984
virtual SANDBOXFILE_API FFileStatData GetStatData(const TCHAR *FilenameOrDirectory) override
Definition IPlatformFileSandboxWrapper.cpp:706
virtual SANDBOXFILE_API IPlatformFile * GetLowerLevel() override
Definition IPlatformFileSandboxWrapper.cpp:490
virtual SANDBOXFILE_API bool MoveFile(const TCHAR *To, const TCHAR *From) override
Definition IPlatformFileSandboxWrapper.cpp:590
SANDBOXFILE_API const FString & GetSandboxDirectory() const
Definition IPlatformFileSandboxWrapper.cpp:195
SANDBOXFILE_API void AddExclusion(const TCHAR *Wildcard, bool bIsDirectory=false)
Definition IPlatformFileSandboxWrapper.cpp:505
virtual SANDBOXFILE_API void SetTimeStamp(const TCHAR *Filename, FDateTime DateTime) override
Definition IPlatformFileSandboxWrapper.cpp:625
virtual SANDBOXFILE_API bool IsReadOnly(const TCHAR *Filename) override
Definition IPlatformFileSandboxWrapper.cpp:571
Definition IPlatformFileSandboxWrapper.cpp:833
Definition IPlatformFileSandboxWrapper.cpp:717
Definition AsyncFileHandle.h:211
Definition GenericPlatformFile.h:117
Definition MappedFileHandle.h:115
Definition GenericPlatformFile.h:623
Definition GenericPlatformFile.h:576
Definition GenericPlatformFile.h:342
virtual CORE_API bool IterateDirectoryRecursively(const TCHAR *Directory, FDirectoryVisitor &Visitor)
Definition GenericPlatformFile.cpp:677
virtual bool IterateDirectoryStat(const TCHAR *Directory, FDirectoryStatVisitor &Visitor)=0
virtual bool IterateDirectory(const TCHAR *Directory, FDirectoryVisitor &Visitor)=0
virtual CORE_API void FindFiles(TArray< FString > &FoundFiles, const TCHAR *Directory, const TCHAR *FileExtension)
Definition GenericPlatformFile.cpp:810
EOpenReadFlags
Definition GenericPlatformFile.h:496
virtual CORE_API bool IterateDirectoryStatRecursively(const TCHAR *Directory, FDirectoryStatVisitor &Visitor)
Definition GenericPlatformFile.cpp:734
Definition SandboxFile.Build.cs:6
Definition Array.h:670
Definition UniquePtr.h:107
Definition ValueOrError.h:58
Definition DateTime.h:76
Definition GenericPlatformFile.h:195