Axmol Engine 2.4.0-258ceca
|
Helper class to handle file operations. More...
#include <FileUtils.h>
Inherited by FileUtilsWinRT.
Public Member Functions | |
virtual | ~FileUtils () |
The destructor of FileUtils. | |
virtual void | purgeCachedEntries () |
Purges full path caches. | |
virtual std::string | getStringFromFile (std::string_view filename) const |
Gets string from a file. | |
virtual Data | getDataFromFile (std::string_view filename) const |
Creates binary data from a file. | |
template<typename T, typename Enable = std::enable_if_t<is_resizable_container_v<T>>> | |
Status | getContents (std::string_view filename, T *buffer) const |
Gets whole file contents as string from a file. | |
virtual std::string | fullPathForFilename (std::string_view filename) const |
Returns the fullpath for a given filename. | |
virtual std::string | fullPathFromRelativeFile (std::string_view filename, std::string_view relativeFile) const |
Gets full path from a file name and the path of the relative file. | |
virtual std::string | fullPathForDirectory (std::string_view dirname) const |
Returns the fullpath for a given dirname. | |
virtual void | setSearchPaths (const std::vector< std::string > &searchPaths) |
Sets the array of search paths. | |
const std::string & | getDefaultResourceRootPath () const |
Get default resource root path. | |
void | setDefaultResourceRootPath (std::string_view path) |
Set default resource root path. | |
void | addSearchPath (std::string_view path, const bool front=false) |
Add search path. | |
virtual const std::vector< std::string > & | getSearchPaths () const |
Gets the array of search paths. | |
virtual const std::vector< std::string > & | getOriginalSearchPaths () const |
Gets the original search path array set by 'setSearchPaths' or 'addSearchPath'. | |
virtual std::string | getWritablePath () const =0 |
Gets the writable path that may not be in the format of an absolute path. | |
virtual std::string | getNativeWritableAbsolutePath () const =0 |
Gets the writable path in the native file-system format. | |
virtual void | setWritablePath (std::string_view writablePath) |
Sets writable path. | |
virtual void | setPopupNotify (bool notify) |
Sets whether to pop-up a message box when failed to load an image. | |
virtual bool | isPopupNotify () const |
Checks whether to pop up a message box when failed to load an image. | |
virtual ValueMap | getValueMapFromFile (std::string_view filename) const |
Converts the contents of a file to a ValueMap. | |
virtual ValueMap | getValueMapFromData (const char *filedata, int filesize) const |
Converts the contents of a file to a ValueMap. | |
virtual bool | writeToFile (const ValueMap &dict, std::string_view fullPath) const |
write a ValueMap into a plist file | |
virtual bool | writeStringToFile (std::string_view dataStr, std::string_view fullPath) const |
write a string into a file | |
virtual bool | writeDataToFile (const Data &data, std::string_view fullPath) const |
write Data into a file | |
virtual bool | writeValueMapToFile (const ValueMap &dict, std::string_view fullPath) const |
write ValueMap into a plist file | |
virtual bool | writeValueVectorToFile (const ValueVector &vecData, std::string_view fullPath) const |
write ValueVector into a plist file | |
virtual bool | isFileExist (std::string_view filename) const |
Checks whether a file exists. | |
virtual bool | isAbsolutePath (std::string_view path) const |
Checks whether the path is an absolute path. | |
virtual bool | isDirectoryExist (std::string_view dirPath) const |
Checks whether the path is a directory. | |
virtual bool | createDirectories (std::string_view dirPath) const |
Creates a directory. | |
virtual bool | removeDirectory (std::string_view dirPath) const |
Removes a directory. | |
virtual bool | removeFile (std::string_view filepath) const |
Removes a file. | |
virtual bool | renameFile (std::string_view path, std::string_view oldname, std::string_view name) const |
Renames a file under the given directory. | |
virtual bool | renameFile (std::string_view oldfullpath, std::string_view newfullpath) const |
Renames a file under the given directory. | |
virtual int64_t | getFileSize (std::string_view filepath) const |
Retrieve the file size. | |
virtual std::vector< std::string > | listFiles (std::string_view dirPath) const |
List all files in a directory. | |
virtual void | listFilesRecursively (std::string_view dirPath, std::vector< std::string > *files) const |
List all files recursively in a directory. | |
AX_DEPRECATED(2.1) virtual void getStringFromFile(std AX_DEPRECATED(2.1) virtual void getDataFromFile(std AX_DEPRECATED(2.1) virtual void writeStringToFile(std | AX_DEPRECATED (2.1) virtual void writeDataToFile(Data data |
Gets string from a file, async off the main cocos thread. | |
AX_DEPRECATED (2.1) virtual void writeValueMapToFile(ValueMap dict | |
Write a ValueMap into a file, done async off the main cocos thread. | |
AX_DEPRECATED (2.1) virtual void writeValueVectorToFile(ValueVector vecData | |
Write a ValueVector into a file, done async off the main cocos thread. | |
AX_DEPRECATED(2.1) virtual void isFileExist(std | AX_DEPRECATED (2.1) static std |
Checks if a file exists, done async off the main cocos thread. | |
AX_DEPRECATED(2.1) virtual void isDirectoryExist(std AX_DEPRECATED(2.1) bool createDirectory(std AX_DEPRECATED(2.1) void removeDirectory(std AX_DEPRECATED(2.1) virtual void removeFile(std AX_DEPRECATED(2.1) virtual void renameFile(std AX_DEPRECATED(2.1) void renameFile(std AX_DEPRECATED(2.1) void getFileSize(std AX_DEPRECATED(2.1) void listFilesAsync(std AX_DEPRECATED(2.1) void listFilesRecursivelyAsync(std const hlookup::string_map< std::string > | getFullPathCache () const |
Checks whether the absoulate path is a directory, async off of the main cocos thread. | |
const hlookup::string_map< std::string > | getFullPathCacheDir () const |
Returns the full path cache. | |
virtual bool | isFileExistInternal (std::string_view filename) const =0 |
Checks whether a file exists without considering search paths and resolution orders. | |
virtual bool | isDirectoryExistInternal (std::string_view dirPath) const |
Checks whether a directory exists without considering search paths and resolution orders. | |
virtual std::unique_ptr< IFileStream > | openFileStream (std::string_view filePath, IFileStream::Mode mode) const |
Open a FileStream based on the implementation provided in openFileStream or its overrides. | |
Static Public Member Functions | |
static FileUtils * | getInstance () |
Gets the instance of FileUtils. | |
static void | destroyInstance () |
Destroys the instance of FileUtils. | |
static void | setDelegate (FileUtils *delegate) |
You can inherit from platform dependent implementation of FileUtils, such as FileUtilsAndroid, and use this function to set delegate, then FileUtils will invoke delegate's implementation. | |
static bool | writeBinaryToFile (const void *data, size_t dataSize, std::string_view fullPath) |
save data to file | |
static std::string | getPathExtension (std::string_view filePath) |
Gets filename extension is a suffix (separated from the base filename by a dot) in lower case. | |
Helper class to handle file operations.
|
static |
You can inherit from platform dependent implementation of FileUtils, such as FileUtilsAndroid, and use this function to set delegate, then FileUtils will invoke delegate's implementation.
For example, your resources are encrypted, so you need to decrypt it after reading data from resources, then you can implement all getXXX functions, and engine will invoke your own getXX functions when reading data of resources.
If you don't want to system default implementation after setting delegate, you can just pass nullptr to this function.
|
virtual |
Creates binary data from a file.
|
inline |
Gets whole file contents as string from a file.
Unlike getStringFromFile, these getContents methods:
The template version of can accept ax::Data, std::basic_string and std::vector.
Note: if you read to std::vector<T> and std::basic_string<T> where T is not 8 bit type, you may get 0 ~ sizeof(T)-1 bytes padding.
[in] | filename | The resource file name which contains the path. |
[out] | buffer | The buffer where the file contents are store to. |
|
virtual |
Returns the fullpath for a given filename.
First it will try to get a new filename from the "filenameLookup" dictionary. If a new filename can't be found on the dictionary, it will use the original filename. Then it will try to obtain the full path of the filename using the FileUtils search rules: resolutions, and search paths. The file search is based on the array element order of search paths and resolution directories.
For instance:
We set two elements("/mnt/sdcard/", "internal_dir/") to search paths vector by setSearchPaths,
If we have a file named 'sprite.png', the mapping in fileLookup dictionary contains key: sprite.png -> value: sprite.pvr.gz
. Firstly, it will replace 'sprite.png' with 'sprite.pvr.gz', then searching the file sprite.pvr.gz as follows:
/mnt/sdcard/resources-ipadhd/sprite.pvr.gz (if not found, search next) /mnt/sdcard/resources-ipad/sprite.pvr.gz (if not found, search next) /mnt/sdcard/resources-iphonehd/sprite.pvr.gz (if not found, search next) /mnt/sdcard/sprite.pvr.gz (if not found, search next) internal_dir/resources-ipadhd/sprite.pvr.gz (if not found, search next) internal_dir/resources-ipad/sprite.pvr.gz (if not found, search next) internal_dir/resources-iphonehd/sprite.pvr.gz (if not found, search next) internal_dir/sprite.pvr.gz (if not found, return "sprite.png")
If the filename contains relative path like "gamescene/uilayer/sprite.png", and the mapping in fileLookup dictionary contains key: gamescene/uilayer/sprite.png -> value: gamescene/uilayer/sprite.pvr.gz
. The file search order will be:
/mnt/sdcard/gamescene/uilayer/resources-ipadhd/sprite.pvr.gz (if not found, search next) /mnt/sdcard/gamescene/uilayer/resources-ipad/sprite.pvr.gz (if not found, search next) /mnt/sdcard/gamescene/uilayer/resources-iphonehd/sprite.pvr.gz (if not found, search next) /mnt/sdcard/gamescene/uilayer/sprite.pvr.gz (if not found, search next) internal_dir/gamescene/uilayer/resources-ipadhd/sprite.pvr.gz (if not found, search next) internal_dir/gamescene/uilayer/resources-ipad/sprite.pvr.gz (if not found, search next) internal_dir/gamescene/uilayer/resources-iphonehd/sprite.pvr.gz (if not found, search next) internal_dir/gamescene/uilayer/sprite.pvr.gz (if not found, return
"gamescene/uilayer/sprite.png")
If the new file can't be found on the file system, it will return the parameter filename directly.
This method was added to simplify multiplatform support. Whether you are using cocos2d-js or any cross-compilation toolchain like StellaSDK or Apportable, you might need to load different resources for a given file in the different platforms.
|
virtual |
Gets full path from a file name and the path of the relative file.
filename | The file name. |
relativeFile | The path of the relative file. |
|
virtual |
Returns the fullpath for a given dirname.
|
virtual |
Sets the array of search paths.
You can use this array to modify the search path of the resources. If you want to use "themes" or search resources in the "cache", you can do it easily by adding new entries in this array.
searchPaths | The array contains search paths. |
void addSearchPath | ( | std::string_view | path, |
const bool | front = false ) |
Add search path.
|
virtual |
Gets the array of search paths.
|
virtual |
Gets the original search path array set by 'setSearchPaths' or 'addSearchPath'.
|
pure virtual |
Gets the writable path that may not be in the format of an absolute path.
Implemented in FileUtilsWinRT.
|
pure virtual |
Gets the writable path in the native file-system format.
Implemented in FileUtilsWinRT.
|
virtual |
Checks whether to pop up a message box when failed to load an image.
|
virtual |
Converts the contents of a file to a ValueMap.
filename | The filename of the file to gets content. |
|
virtual |
Converts the contents of a file to a ValueMap.
This method is used internally.
|
virtual |
write a ValueMap into a plist file
dict | the ValueMap want to save |
fullPath | The full path to the file you want to save a string |
|
virtual |
write a string into a file
dataStr | the string want to save |
fullPath | The full path to the file you want to save a string |
|
virtual |
write Data into a file
data | the data want to save |
fullPath | The full path to the file you want to save a string |
|
virtual |
write ValueMap into a plist file
dict | the ValueMap want to save |
fullPath | The full path to the file you want to save a string |
|
virtual |
write ValueVector into a plist file
vecData | the ValueVector want to save |
fullPath | The full path to the file you want to save a string |
|
virtual |
Checks whether a file exists.
filename | The path of the file, it could be a relative or absolute path. |
|
static |
Gets filename extension is a suffix (separated from the base filename by a dot) in lower case.
Examples of filename extensions are .png, .jpeg, .exe, .dmg and .txt.
filePath | The path of the file, it could be a relative or absolute path. |
|
virtual |
Checks whether the path is an absolute path.
path | The path that needs to be checked. |
Reimplemented in FileUtilsWinRT.
|
virtual |
Checks whether the path is a directory.
dirPath | The path of the directory, it could be a relative or an absolute path. |
|
virtual |
Creates a directory.
dirPath | The path of the directory, it must be an absolute path. |
|
virtual |
Removes a directory.
dirPath | The full path of the directory, it must be an absolute path. |
|
virtual |
Removes a file.
filepath | The full path of the file, it must be an absolute path. |
|
virtual |
Renames a file under the given directory.
path | The parent directory path of the file, it must be an absolute path. |
oldname | The current name of the file. |
name | The new name of the file. |
|
virtual |
Renames a file under the given directory.
oldfullpath | The current fullpath of the file. Includes path and name. |
newfullpath | The new fullpath of the file. Includes path and name. |
|
virtual |
Retrieve the file size.
filepath | The path of the file, it could be a relative or absolute path. |
Reimplemented in FileUtilsWinRT.
|
virtual |
List all files in a directory.
dirPath | The path of the directory, it could be a relative or an absolute path. |
|
virtual |
List all files recursively in a directory.
dirPath | The path of the directory, it could be a relative or an absolute path. |
AX_DEPRECATED(2.1) virtual void getStringFromFile(std AX_DEPRECATED(2.1) virtual void getDataFromFile(std AX_DEPRECATED(2.1) virtual void writeStringToFile(std AX_DEPRECATED | ( | 2. | 1 | ) |
Gets string from a file, async off the main cocos thread.
path | filepath for the string to be read. Can be relative or absolute path |
callback | Function that will be called when file is read. Will be called on the main cocos thread. Gets a binary data object from a file, async off the main cocos thread. |
filename | filepath for the data to be read. Can be relative or absolute path |
callback | Function that will be called when file is read. Will be called on the main cocos thread. Write a string to a file, done async off the main cocos thread Use this function if you need file access without blocking the main thread. |
This function takes a std::string by value on purpose, to leverage move sematics. If you want to avoid a copy of your datastr, use std::move/std::forward if appropriate
dataStr | the string want to save |
fullPath | The full path to the file you want to save a string |
callback | The function called once the string has been written to a file. This function will be executed on the main cocos thread. It will have on boolean argument signifying if the write was successful. Write Data into a file, done async off the main cocos thread. |
Use this function if you need to write Data while not blocking the main cocos thread.
This function takes Data by value on purpose, to leverage move sematics. If you want to avoid a copy of your data, use std::move/std::forward if appropriate
data | The data that will be written to disk |
fullPath | The absolute file path that the data will be written to |
callback | The function that will be called when data is written to disk. This function will be executed on the main cocos thread. It will have on boolean argument signifying if the write was successful. |
AX_DEPRECATED | ( | 2. | 1 | ) |
Write a ValueMap into a file, done async off the main cocos thread.
Use this function if you need to write a ValueMap while not blocking the main cocos thread.
This function takes ValueMap by value on purpose, to leverage move sematics. If you want to avoid a copy of your dict, use std::move/std::forward if appropriate
dict | The ValueMap that will be written to disk |
fullPath | The absolute file path that the data will be written to |
callback | The function that will be called when dict is written to disk. This function will be executed on the main cocos thread. It will have on boolean argument signifying if the write was successful. |
AX_DEPRECATED | ( | 2. | 1 | ) |
Write a ValueVector into a file, done async off the main cocos thread.
Use this function if you need to write a ValueVector while not blocking the main cocos thread.
This function takes ValueVector by value on purpose, to leverage move sematics. If you want to avoid a copy of your dict, use std::move/std::forward if appropriate
vecData | The ValueVector that will be written to disk |
fullPath | The absolute file path that the data will be written to |
callback | The function that will be called when vecData is written to disk. This function will be executed on the main cocos thread. It will have on boolean argument signifying if the write was successful. |
|
inline |
Checks if a file exists, done async off the main cocos thread.
Use this function if you need to check if a file exists while not blocking the main cocos thread.
filename | The path of the file, it could be a relative or absolute path. |
callback | The function that will be called when the operation is complete. Will have one boolean argument, true if the file exists, false otherwise. |
|
inline |
Checks whether the absoulate path is a directory, async off of the main cocos thread.
dirPath | The path of the directory, it must be an absolute path |
callback | that will accept a boolean, true if the file exists, false otherwise. Callback will happen on the main cocos thread. Create a directory, async off the main cocos thread. |
dirPath | the path of the directory, it must be an absolute path |
callback | The function that will be called when the operation is complete. Will have one boolean argument, true if the directory was successfully, false otherwise. Removes a directory, async off the main cocos thread. |
dirPath | the path of the directory, it must be an absolute path |
callback | The function that will be called when the operation is complete. Will have one boolean argument, true if the directory was successfully removed, false otherwise. Removes a file, async off the main cocos thread. |
filepath | the path of the file to remove, it must be an absolute path |
callback | The function that will be called when the operation is complete. Will have one boolean argument, true if the file was successfully removed, false otherwise. Renames a file under the given directory, async off the main cocos thread. |
path | The parent directory path of the file, it must be an absolute path. |
oldname | The current name of the file. |
name | The new name of the file. |
callback | The function that will be called when the operation is complete. Will have one boolean argument, true if the file was successfully renamed, false otherwise. Renames a file under the given directory, async off the main cocos thread. |
oldfullpath | The current fullpath of the file. Includes path and name. |
newfullpath | The new fullpath of the file. Includes path and name. |
callback | The function that will be called when the operation is complete. Will have one boolean argument, true if the file was successfully renamed, false otherwise. Retrieve the file size, async off the main cocos thread. |
filepath | The path of the file, it could be a relative or absolute path. |
callback | The function that will be called when the operation is complete. Will have one long argument, the file size. List all files in a directory async, off of the main cocos thread. |
dirPath | The path of the directory, it could be a relative or an absolute path. |
callback | The callback to be called once the list operation is complete. Will be called on the main cocos thread. @js NA @lua NA List all files recursively in a directory, async off the main cocos thread. |
dirPath | The path of the directory, it could be a relative or an absolute path. |
callback | The callback to be called once the list operation is complete. Will be called on the main cocos thread. @js NA @lua NA Returns the full path cache. |
|
pure virtual |
Checks whether a file exists without considering search paths and resolution orders.
filename | The file (with absolute path) to look up for |
|
virtual |
Checks whether a directory exists without considering search paths and resolution orders.
dirPath | The directory (with absolute path) to look up for |
|
virtual |
Open a FileStream based on the implementation provided in openFileStream or its overrides.
filePath | The path to the file |
mode | The mode to open the file in, being READ | WRITE | APPEND |