mirror of https://github.com/axmolengine/axmol.git
issue #1687: CCFileUtils::isFileExist now support relative path.
This commit is contained in:
parent
c362f7e439
commit
e25c79f1ec
|
@ -255,16 +255,20 @@ public:
|
||||||
/**
|
/**
|
||||||
* Checks whether a file exists.
|
* Checks whether a file exists.
|
||||||
*
|
*
|
||||||
* @param strFullpathOfFile The full path of file.
|
* @note If a relative path was passed in, it will be inserted a default root path at the beginning.
|
||||||
|
* @param strFilePath The path of the file, it could be a relative or absolute path.
|
||||||
|
* @return true if the file exists, otherwise it will return false.
|
||||||
*/
|
*/
|
||||||
virtual bool isFileExist(const std::string& strFullpathOfFile) = 0;
|
virtual bool isFileExist(const std::string& strFilePath) = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks whether the path is an absolute path.
|
* Checks whether the path is an absolute path.
|
||||||
|
*
|
||||||
* @note On Android, if the parameter passed in is relative to "assets/", this method will treat it as an absolute path.
|
* @note On Android, if the parameter passed in is relative to "assets/", this method will treat it as an absolute path.
|
||||||
* Also on Blackberry, path starts with "app/native/Resources/" is treated as an absolute path.
|
* Also on Blackberry, path starts with "app/native/Resources/" is treated as an absolute path.
|
||||||
*
|
*
|
||||||
* @param strPath The path that needs to be checked.
|
* @param strPath The path that needs to be checked.
|
||||||
|
* @return true if it's an absolute path, otherwise it will return false.
|
||||||
*/
|
*/
|
||||||
virtual bool isAbsolutePath(const std::string& strPath);
|
virtual bool isAbsolutePath(const std::string& strPath);
|
||||||
|
|
||||||
|
@ -305,8 +309,7 @@ protected:
|
||||||
* @param filename The file name.
|
* @param filename The file name.
|
||||||
* @param resolutionDirectory The resolution directory.
|
* @param resolutionDirectory The resolution directory.
|
||||||
* @param searchPath The search path.
|
* @param searchPath The search path.
|
||||||
* @param retFullPath The return value of full path.
|
* @return The full path of the file. It will return an empty string if the full path of the file doesn't exist.
|
||||||
* @return Whether the file exists.
|
|
||||||
*/
|
*/
|
||||||
virtual std::string getPathForFilename(const std::string& filename, const std::string& resolutionDirectory, const std::string& searchPath);
|
virtual std::string getPathForFilename(const std::string& filename, const std::string& resolutionDirectory, const std::string& searchPath);
|
||||||
|
|
||||||
|
@ -335,11 +338,11 @@ protected:
|
||||||
virtual CCArray* createCCArrayWithContentsOfFile(const std::string& filename);
|
virtual CCArray* createCCArrayWithContentsOfFile(const std::string& filename);
|
||||||
|
|
||||||
/** Dictionary used to lookup filenames based on a key.
|
/** Dictionary used to lookup filenames based on a key.
|
||||||
It is used internally by the following methods:
|
* It is used internally by the following methods:
|
||||||
|
*
|
||||||
std::string fullPathForFilename(const char*);
|
* std::string fullPathForFilename(const char*);
|
||||||
|
*
|
||||||
@since v2.1
|
* @since v2.1
|
||||||
*/
|
*/
|
||||||
CCDictionary* m_pFilenameLookupDict;
|
CCDictionary* m_pFilenameLookupDict;
|
||||||
|
|
||||||
|
|
|
@ -60,17 +60,27 @@ bool CCFileUtilsAndroid::init()
|
||||||
return CCFileUtils::init();
|
return CCFileUtils::init();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CCFileUtilsAndroid::isFileExist(const std::string& strFullpathOfFile)
|
bool CCFileUtilsAndroid::isFileExist(const std::string& strFilePath)
|
||||||
{
|
{
|
||||||
bool bFound = false;
|
bool bFound = false;
|
||||||
|
|
||||||
// Check whether file exists in apk.
|
// Check whether file exists in apk.
|
||||||
if (s_pZipFile->fileExists(strFullpathOfFile))
|
if (strFilePath[0] != '/')
|
||||||
|
{
|
||||||
|
std::string strPath = strFilePath;
|
||||||
|
if (strPath.find(m_strDefaultResRootPath) != 0)
|
||||||
|
{// Didn't find "assets/" at the beginning of the path, adding it.
|
||||||
|
strPath.insert(0, m_strDefaultResRootPath);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (s_pZipFile->fileExists(strPath))
|
||||||
{
|
{
|
||||||
bFound = true;
|
bFound = true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
FILE *fp = fopen(strFullpathOfFile.c_str(), "r");
|
FILE *fp = fopen(strFilePath.c_str(), "r");
|
||||||
if(fp)
|
if(fp)
|
||||||
{
|
{
|
||||||
bFound = true;
|
bFound = true;
|
||||||
|
@ -105,7 +115,7 @@ unsigned char* CCFileUtilsAndroid::getFileData(const char* pszFileName, const ch
|
||||||
|
|
||||||
if (pszFileName[0] != '/')
|
if (pszFileName[0] != '/')
|
||||||
{
|
{
|
||||||
CCLOG("GETTING FILE RELATIVE DATA: %s", pszFileName);
|
//CCLOG("GETTING FILE RELATIVE DATA: %s", pszFileName);
|
||||||
string fullPath = fullPathForFilename(pszFileName);
|
string fullPath = fullPathForFilename(pszFileName);
|
||||||
pData = s_pZipFile->getFileData(fullPath.c_str(), pSize);
|
pData = s_pZipFile->getFileData(fullPath.c_str(), pSize);
|
||||||
}
|
}
|
||||||
|
@ -114,7 +124,7 @@ unsigned char* CCFileUtilsAndroid::getFileData(const char* pszFileName, const ch
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
// read rrom other path than user set it
|
// read rrom other path than user set it
|
||||||
CCLOG("GETTING FILE ABSOLUTE DATA: %s", pszFileName);
|
//CCLOG("GETTING FILE ABSOLUTE DATA: %s", pszFileName);
|
||||||
FILE *fp = fopen(pszFileName, pszMode);
|
FILE *fp = fopen(pszFileName, pszMode);
|
||||||
CC_BREAK_IF(!fp);
|
CC_BREAK_IF(!fp);
|
||||||
|
|
||||||
|
|
|
@ -33,8 +33,6 @@
|
||||||
|
|
||||||
NS_CC_BEGIN
|
NS_CC_BEGIN
|
||||||
|
|
||||||
class CCDictionary;
|
|
||||||
class CCArray;
|
|
||||||
/**
|
/**
|
||||||
* @addtogroup platform
|
* @addtogroup platform
|
||||||
* @{
|
* @{
|
||||||
|
@ -47,28 +45,12 @@ class CC_DLL CCFileUtilsAndroid : public CCFileUtils
|
||||||
CCFileUtilsAndroid();
|
CCFileUtilsAndroid();
|
||||||
public:
|
public:
|
||||||
virtual ~CCFileUtilsAndroid();
|
virtual ~CCFileUtilsAndroid();
|
||||||
|
|
||||||
/* override funtions */
|
/* override funtions */
|
||||||
bool init();
|
bool init();
|
||||||
|
|
||||||
virtual unsigned char* getFileData(const char* pszFileName, const char* pszMode, unsigned long * pSize);
|
virtual unsigned char* getFileData(const char* pszFileName, const char* pszMode, unsigned long * pSize);
|
||||||
/**
|
|
||||||
* Gets the writeable path
|
|
||||||
* @return The path that can write/read file
|
|
||||||
*/
|
|
||||||
virtual std::string getWriteablePath();
|
virtual std::string getWriteablePath();
|
||||||
|
virtual bool isFileExist(const std::string& strFilePath);
|
||||||
/**
|
|
||||||
* Checks whether file exists.
|
|
||||||
*
|
|
||||||
* @param strFullpathOfFile The full path of file.
|
|
||||||
*/
|
|
||||||
virtual bool isFileExist(const std::string& strFullpathOfFile);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks whether the path is an absolute path.
|
|
||||||
*
|
|
||||||
* @param strPath The path that needs to be checked.
|
|
||||||
*/
|
|
||||||
virtual bool isAbsolutePath(const std::string& strPath);
|
virtual bool isAbsolutePath(const std::string& strPath);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -51,9 +51,18 @@ bool CCFileUtilsBlackberry::isAbsolutePath(const std::string& strPath)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CCFileUtilsBlackberry::isFileExist(const std::string& strFullpathOfFile)
|
bool CCFileUtilsBlackberry::isFileExist(const std::string& strFilePath)
|
||||||
{
|
{
|
||||||
return access(strFullpathOfFile.c_str(), F_OK) != -1 ? true : false;
|
std::string strPath = strFilePath;
|
||||||
|
if (strPath[0] != '/')
|
||||||
|
{ // Not absolute path, add the default root path at the beginning.
|
||||||
|
if (strPath.find(m_strDefaultResRootPath) != 0)
|
||||||
|
{// Didn't find "assets/" at the beginning of the path, adding it.
|
||||||
|
strPath.insert(0, m_strDefaultResRootPath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return access(strPath.c_str(), F_OK) != -1 ? true : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_CC_END
|
NS_CC_END
|
||||||
|
|
|
@ -33,8 +33,6 @@
|
||||||
|
|
||||||
NS_CC_BEGIN
|
NS_CC_BEGIN
|
||||||
|
|
||||||
class CCDictionary;
|
|
||||||
class CCArray;
|
|
||||||
/**
|
/**
|
||||||
* @addtogroup platform
|
* @addtogroup platform
|
||||||
* @{
|
* @{
|
||||||
|
@ -48,20 +46,8 @@ class CC_DLL CCFileUtilsBlackberry : public CCFileUtils
|
||||||
public:
|
public:
|
||||||
/* override funtions */
|
/* override funtions */
|
||||||
bool init();
|
bool init();
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the writeable path
|
|
||||||
* @return The path that can write/read file
|
|
||||||
*/
|
|
||||||
virtual std::string getWriteablePath();
|
virtual std::string getWriteablePath();
|
||||||
|
virtual bool isFileExist(const std::string& strFilePath);
|
||||||
/**
|
|
||||||
* Checks whether file exists.
|
|
||||||
*
|
|
||||||
* @param strFullpathOfFile The full path of file.
|
|
||||||
*/
|
|
||||||
virtual bool isFileExist(const std::string& strFullpathOfFile);
|
|
||||||
|
|
||||||
virtual bool isAbsolutePath(const std::string& strPath);
|
virtual bool isAbsolutePath(const std::string& strPath);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -33,8 +33,6 @@
|
||||||
|
|
||||||
NS_CC_BEGIN
|
NS_CC_BEGIN
|
||||||
|
|
||||||
class CCDictionary;
|
|
||||||
class CCArray;
|
|
||||||
/**
|
/**
|
||||||
* @addtogroup platform
|
* @addtogroup platform
|
||||||
* @{
|
* @{
|
||||||
|
@ -45,37 +43,9 @@ class CC_DLL CCFileUtilsIOS : public CCFileUtils
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/* override funtions */
|
/* override funtions */
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the writeable path
|
|
||||||
* @return The path that can write/read file
|
|
||||||
*/
|
|
||||||
virtual std::string getWriteablePath();
|
virtual std::string getWriteablePath();
|
||||||
|
virtual bool isFileExist(const std::string& strFilePath);
|
||||||
/**
|
|
||||||
* Checks whether file exists.
|
|
||||||
*
|
|
||||||
* @param strFullpathOfFile The full path of file.
|
|
||||||
*/
|
|
||||||
virtual bool isFileExist(const std::string& strFullpathOfFile);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks whether the path is an absolute path.
|
|
||||||
*
|
|
||||||
* @param strPath The path that needs to be checked.
|
|
||||||
*/
|
|
||||||
virtual bool isAbsolutePath(const std::string& strPath);
|
virtual bool isAbsolutePath(const std::string& strPath);
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets full path for the directory and the filename.
|
|
||||||
*
|
|
||||||
* @note Only iOS and Mac need to override this method since they are using
|
|
||||||
* `[[NSBundle mainBundle] pathForResource: ofType: inDirectory:]` to make a full path.
|
|
||||||
* Other platforms will use the default implementation of this method.
|
|
||||||
* @param strDirectory The directory contains the file we are looking for.
|
|
||||||
* @param strFilename The name of the file.
|
|
||||||
* @return The full path of the file, if the file can't be found, it will return an empty string.
|
|
||||||
*/
|
|
||||||
virtual std::string getFullPathForDirectoryAndFilename(const std::string& strDirectory, const std::string& strFilename);
|
virtual std::string getFullPathForDirectoryAndFilename(const std::string& strDirectory, const std::string& strFilename);
|
||||||
|
|
||||||
virtual CCDictionary* createCCDictionaryWithContentsOfFile(const std::string& filename);
|
virtual CCDictionary* createCCDictionaryWithContentsOfFile(const std::string& filename);
|
||||||
|
|
|
@ -62,13 +62,13 @@ std::string CCFileUtilsIOS::getWriteablePath()
|
||||||
return strRet;
|
return strRet;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CCFileUtilsIOS::isFileExist(const std::string& strFullpathOfFile)
|
bool CCFileUtilsIOS::isFileExist(const std::string& strFilePath)
|
||||||
{
|
{
|
||||||
bool bRet = false;
|
bool bRet = false;
|
||||||
|
|
||||||
if (strFullpathOfFile[0] != '/')
|
if (strFilePath[0] != '/')
|
||||||
{
|
{
|
||||||
std::string path = strFullpathOfFile;
|
std::string path = strFilePath;
|
||||||
std::string file;
|
std::string file;
|
||||||
size_t pos = path.find_last_of("/");
|
size_t pos = path.find_last_of("/");
|
||||||
if (pos != std::string::npos)
|
if (pos != std::string::npos)
|
||||||
|
@ -86,7 +86,7 @@ bool CCFileUtilsIOS::isFileExist(const std::string& strFullpathOfFile)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Search path is an absolute path.
|
// Search path is an absolute path.
|
||||||
if ([s_fileManager fileExistsAtPath:[NSString stringWithUTF8String:strFullpathOfFile.c_str()]]) {
|
if ([s_fileManager fileExistsAtPath:[NSString stringWithUTF8String:strFilePath.c_str()]]) {
|
||||||
bRet = true;
|
bRet = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,10 +53,16 @@ string CCFileUtilsLinux::getWriteablePath()
|
||||||
return m_strDefaultResRootPath;
|
return m_strDefaultResRootPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CCFileUtilsLinux::isFileExist(const std::string& strFullpathOfFile)
|
bool CCFileUtilsLinux::isFileExist(const std::string& strFilePath)
|
||||||
{
|
{
|
||||||
|
std::string strPath = strFilePath;
|
||||||
|
if (!isAbsolutePath(strPath))
|
||||||
|
{ // Not absolute path, add the default root path at the beginning.
|
||||||
|
strPath.insert(0, m_strDefaultResRootPath);
|
||||||
|
}
|
||||||
|
|
||||||
struct stat sts;
|
struct stat sts;
|
||||||
return (stat(strFullpathOfFile.c_str(), &sts) != -1) ? true : false;
|
return (stat(strPath.c_str(), &sts) != -1) ? true : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_CC_END
|
NS_CC_END
|
||||||
|
|
|
@ -33,8 +33,6 @@
|
||||||
|
|
||||||
NS_CC_BEGIN
|
NS_CC_BEGIN
|
||||||
|
|
||||||
class CCDictionary;
|
|
||||||
class CCArray;
|
|
||||||
/**
|
/**
|
||||||
* @addtogroup platform
|
* @addtogroup platform
|
||||||
* @{
|
* @{
|
||||||
|
@ -48,19 +46,8 @@ class CC_DLL CCFileUtilsLinux : public CCFileUtils
|
||||||
public:
|
public:
|
||||||
/* override funtions */
|
/* override funtions */
|
||||||
bool init();
|
bool init();
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the writeable path
|
|
||||||
* @return The path that can write/read file
|
|
||||||
*/
|
|
||||||
virtual std::string getWriteablePath();
|
virtual std::string getWriteablePath();
|
||||||
|
virtual bool isFileExist(const std::string& strFilePath);
|
||||||
/**
|
|
||||||
* Checks whether file exists.
|
|
||||||
*
|
|
||||||
* @param strFullpathOfFile The full path of file.
|
|
||||||
*/
|
|
||||||
virtual bool isFileExist(const std::string& strFullpathOfFile);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// end of platform group
|
// end of platform group
|
||||||
|
|
|
@ -32,9 +32,6 @@
|
||||||
#include "ccTypeInfo.h"
|
#include "ccTypeInfo.h"
|
||||||
|
|
||||||
NS_CC_BEGIN
|
NS_CC_BEGIN
|
||||||
|
|
||||||
class CCDictionary;
|
|
||||||
class CCArray;
|
|
||||||
/**
|
/**
|
||||||
* @addtogroup platform
|
* @addtogroup platform
|
||||||
* @{
|
* @{
|
||||||
|
@ -45,30 +42,9 @@ class CC_DLL CCFileUtilsMac : public CCFileUtils
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/* override funtions */
|
/* override funtions */
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the writeable path
|
|
||||||
* @return The path that can write/read file
|
|
||||||
*/
|
|
||||||
virtual std::string getWriteablePath();
|
virtual std::string getWriteablePath();
|
||||||
|
virtual bool isFileExist(const std::string& strFilePath);
|
||||||
/**
|
|
||||||
* Checks whether file exists.
|
|
||||||
*
|
|
||||||
* @param strFullpathOfFile The full path of file.
|
|
||||||
*/
|
|
||||||
virtual bool isFileExist(const std::string& strFullpathOfFile);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks whether the path is an absolute path.
|
|
||||||
*
|
|
||||||
* @param strPath The path that needs to be checked.
|
|
||||||
*/
|
|
||||||
virtual bool isAbsolutePath(const std::string& strPath);
|
virtual bool isAbsolutePath(const std::string& strPath);
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
virtual std::string getFullPathForDirectoryAndFilename(const std::string& strDirectory, const std::string& strFilename);
|
virtual std::string getFullPathForDirectoryAndFilename(const std::string& strDirectory, const std::string& strFilename);
|
||||||
|
|
||||||
virtual CCDictionary* createCCDictionaryWithContentsOfFile(const std::string& filename);
|
virtual CCDictionary* createCCDictionaryWithContentsOfFile(const std::string& filename);
|
||||||
|
|
|
@ -59,13 +59,13 @@ std::string CCFileUtilsMac::getWriteablePath()
|
||||||
return strRet;
|
return strRet;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CCFileUtilsMac::isFileExist(const std::string& strFullpathOfFile)
|
bool CCFileUtilsMac::isFileExist(const std::string& strFilePath)
|
||||||
{
|
{
|
||||||
bool bRet = false;
|
bool bRet = false;
|
||||||
|
|
||||||
if (strFullpathOfFile[0] != '/')
|
if (strFilePath[0] != '/')
|
||||||
{
|
{
|
||||||
std::string path = strFullpathOfFile;
|
std::string path = strFilePath;
|
||||||
std::string file;
|
std::string file;
|
||||||
size_t pos = path.find_last_of("/");
|
size_t pos = path.find_last_of("/");
|
||||||
if (pos != std::string::npos)
|
if (pos != std::string::npos)
|
||||||
|
@ -83,7 +83,7 @@ bool CCFileUtilsMac::isFileExist(const std::string& strFullpathOfFile)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Search path is an absolute path.
|
// Search path is an absolute path.
|
||||||
if ([s_fileManager fileExistsAtPath:[NSString stringWithUTF8String:strFullpathOfFile.c_str()]]) {
|
if ([s_fileManager fileExistsAtPath:[NSString stringWithUTF8String:strFilePath.c_str()]]) {
|
||||||
bRet = true;
|
bRet = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,9 +28,9 @@ string CCFileUtilsMarmalade::getWriteablePath()
|
||||||
return std::string("ram://");
|
return std::string("ram://");
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CCFileUtilsMarmalade::isFileExist(const std::string& strFullpathOfFile)
|
bool CCFileUtilsMarmalade::isFileExist(const std::string& strFilePath)
|
||||||
{
|
{
|
||||||
return s3eFileCheckExists(strFullpathOfFile.c_str()) == S3E_TRUE ? true : false;
|
return s3eFileCheckExists(strFilePath.c_str()) == S3E_TRUE ? true : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned char* CCFileUtilsMarmalade::getFileData(const char* pszFileName, const char* pszMode, unsigned long * pSize)
|
unsigned char* CCFileUtilsMarmalade::getFileData(const char* pszFileName, const char* pszMode, unsigned long * pSize)
|
||||||
|
|
|
@ -33,8 +33,6 @@
|
||||||
|
|
||||||
NS_CC_BEGIN
|
NS_CC_BEGIN
|
||||||
|
|
||||||
class CCDictionary;
|
|
||||||
class CCArray;
|
|
||||||
/**
|
/**
|
||||||
* @addtogroup platform
|
* @addtogroup platform
|
||||||
* @{
|
* @{
|
||||||
|
@ -47,22 +45,9 @@ class CC_DLL CCFileUtilsMarmalade : public CCFileUtils
|
||||||
CCFileUtilsMarmalade();
|
CCFileUtilsMarmalade();
|
||||||
public:
|
public:
|
||||||
/* override funtions */
|
/* override funtions */
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the writeable path
|
|
||||||
* @return The path that can write/read file
|
|
||||||
*/
|
|
||||||
virtual std::string getWriteablePath();
|
virtual std::string getWriteablePath();
|
||||||
|
virtual bool isFileExist(const std::string& strFilePath);
|
||||||
/**
|
|
||||||
* Checks whether file exists.
|
|
||||||
*
|
|
||||||
* @param strFullpathOfFile The full path of file.
|
|
||||||
*/
|
|
||||||
virtual bool isFileExist(const std::string& strFullpathOfFile);
|
|
||||||
|
|
||||||
virtual bool isAbsolutePath(const std::string& strPath);
|
virtual bool isAbsolutePath(const std::string& strPath);
|
||||||
|
|
||||||
virtual unsigned char* getFileData(const char* pszFileName, const char* pszMode, unsigned long * pSize);
|
virtual unsigned char* getFileData(const char* pszFileName, const char* pszMode, unsigned long * pSize);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -64,9 +64,14 @@ bool CCFileUtilsWin32::init()
|
||||||
return CCFileUtils::init();
|
return CCFileUtils::init();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CCFileUtilsWin32::isFileExist(const std::string& strFullpathOfFile)
|
bool CCFileUtilsWin32::isFileExist(const std::string& strFilePath)
|
||||||
{
|
{
|
||||||
return GetFileAttributesA(strFullpathOfFile.c_str()) != -1 ? true : false;
|
std::string strPath = strFilePath;
|
||||||
|
if (!isAbsolutePath(strPath))
|
||||||
|
{ // Not absolute path, add the default root path at the beginning.
|
||||||
|
strPath.insert(0, m_strDefaultResRootPath);
|
||||||
|
}
|
||||||
|
return GetFileAttributesA(strPath.c_str()) != -1 ? true : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CCFileUtilsWin32::isAbsolutePath(const std::string& strPath)
|
bool CCFileUtilsWin32::isAbsolutePath(const std::string& strPath)
|
||||||
|
|
|
@ -33,8 +33,6 @@
|
||||||
|
|
||||||
NS_CC_BEGIN
|
NS_CC_BEGIN
|
||||||
|
|
||||||
class CCDictionary;
|
|
||||||
class CCArray;
|
|
||||||
/**
|
/**
|
||||||
* @addtogroup platform
|
* @addtogroup platform
|
||||||
* @{
|
* @{
|
||||||
|
@ -48,25 +46,8 @@ class CC_DLL CCFileUtilsWin32 : public CCFileUtils
|
||||||
public:
|
public:
|
||||||
/* override funtions */
|
/* override funtions */
|
||||||
bool init();
|
bool init();
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the writeable path
|
|
||||||
* @return The path that can write/read file
|
|
||||||
*/
|
|
||||||
virtual std::string getWriteablePath();
|
virtual std::string getWriteablePath();
|
||||||
|
virtual bool isFileExist(const std::string& strFilePath);
|
||||||
/**
|
|
||||||
* Checks whether file exists.
|
|
||||||
*
|
|
||||||
* @param strFullpathOfFile The full path of file.
|
|
||||||
*/
|
|
||||||
virtual bool isFileExist(const std::string& strFullpathOfFile);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks whether the path is an absolute path.
|
|
||||||
*
|
|
||||||
* @param strPath The path that needs to be checked.
|
|
||||||
*/
|
|
||||||
virtual bool isAbsolutePath(const std::string& strPath);
|
virtual bool isAbsolutePath(const std::string& strPath);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue