UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AndroidPlatformFile.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3/*=============================================================================================
4 AndroidFile.h: Android platform File functions
5==============================================================================================*/
6
7#pragma once
8
10#if USE_ANDROID_JNI
11#include <jni.h>
12#endif
13
19{
20public:
21 // Methods that expose an argument for allowing Android Assets (i.e. `assets` directory in Gradle project) to be considered. By default, they are
22 // not, because Asset stat can be very slow on some devices.
23 virtual bool FileExists(const TCHAR* Filename, bool bAllowAssets) = 0;
24 virtual int64 FileSize(const TCHAR* Filename, bool bAllowAssets) = 0;
26 virtual bool DirectoryExists(const TCHAR* Directory, bool bAllowAssets) = 0;
27 virtual bool IterateDirectory(const TCHAR* Directory, FDirectoryVisitor& Visitor, bool bAllowAssets) = 0;
28 virtual bool IterateDirectoryStat(const TCHAR* Directory, FDirectoryStatVisitor& Visitor, bool bAllowAssets) = 0;
29 // Using statements avoid a compiler warning - this says, "yes I am intending to add virtual overloads in a subclass, no it's not a mistake".
36
38
39#if USE_ANDROID_FILE
44 static CORE_API const FString* GetOverrideLogDirectory();
45#endif
46
47#if USE_ANDROID_JNI
48 // Get the android.content.res.AssetManager that Java code
49 // should use to open APK assets.
50 virtual jobject GetAssetManager() = 0;
51#endif
52
53 // Get detailed information for a file that
54 // we can hand to other Android media classes for access.
55
56 // Is file embedded as an asset in the APK?
57 virtual bool IsAsset(const TCHAR* Filename) = 0;
58
59 // Offset within file or asset where its data starts.
60 // Note, offsets for assets is relative to complete APK file
61 // and matches what is returned by AssetFileDescriptor.getStartOffset().
62 virtual int64 FileStartOffset(const TCHAR* Filename) = 0;
63
64 // Get the root, i.e. underlying, path for the file. This
65 // can be any of: a resolved file path, an OBB path, an
66 // asset path.
67 virtual FString FileRootPath(const TCHAR* Filename) = 0;
68
69 CORE_API virtual FString ConvertToAbsolutePathForExternalAppForRead(const TCHAR* Filename) override;
70 CORE_API virtual FString ConvertToAbsolutePathForExternalAppForWrite(const TCHAR* Filename) override;
71};
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
Definition AndroidPlatformFile.h:19
virtual int64 FileStartOffset(const TCHAR *Filename)=0
virtual bool IterateDirectory(const TCHAR *Directory, FDirectoryVisitor &Visitor, bool bAllowAssets)=0
virtual CORE_API FString ConvertToAbsolutePathForExternalAppForWrite(const TCHAR *Filename) override
virtual bool IterateDirectoryStat(const TCHAR *Directory, FDirectoryStatVisitor &Visitor, bool bAllowAssets)=0
virtual FFileStatData GetStatData(const TCHAR *FilenameOrDirectory, bool bAllowAssets)=0
static CORE_API IAndroidPlatformFile & GetPlatformPhysical()
virtual int64 FileSize(const TCHAR *Filename, bool bAllowAssets)=0
virtual bool DirectoryExists(const TCHAR *Directory, bool bAllowAssets)=0
virtual bool IsAsset(const TCHAR *Filename)=0
virtual FString FileRootPath(const TCHAR *Filename)=0
virtual CORE_API FString ConvertToAbsolutePathForExternalAppForRead(const TCHAR *Filename) override
virtual bool FileExists(const TCHAR *Filename, bool bAllowAssets)=0
Definition GenericPlatformFile.h:995
Definition GenericPlatformFile.h:623
Definition GenericPlatformFile.h:576
virtual FFileStatData GetStatData(const TCHAR *FilenameOrDirectory)=0
virtual bool IterateDirectoryStat(const TCHAR *Directory, FDirectoryStatVisitor &Visitor)=0
virtual bool IterateDirectory(const TCHAR *Directory, FDirectoryVisitor &Visitor)=0
virtual bool DirectoryExists(const TCHAR *Directory)=0
virtual bool FileExists(const TCHAR *Filename)=0
virtual int64 FileSize(const TCHAR *Filename)=0
Definition GenericPlatformFile.h:195