remove CreateDirectories and Rename

This commit is contained in:
Glenn Maynard
2003-12-07 04:20:07 +00:00
parent 594c059062
commit c6b550e2ef
2 changed files with 13 additions and 53 deletions
+1 -49
View File
@@ -301,7 +301,7 @@ CString GetExtension( CString sPath )
CString GetCwd() CString GetCwd()
{ {
#ifdef _XBOX #ifdef _XBOX
return "D:\\" ; return SYS_BASE_PATH;
#else #else
char buf[PATH_MAX]; char buf[PATH_MAX];
bool ret = getcwd(buf, PATH_MAX) != NULL; bool ret = getcwd(buf, PATH_MAX) != NULL;
@@ -310,54 +310,6 @@ CString GetCwd()
#endif #endif
} }
/* mkdir -p. Doesn't fail if Path already exists and is a directory. */
bool CreateDirectories( CString Path )
{
CStringArray parts;
CString curpath;
split(Path, SLASH, parts);
for(unsigned i = 0; i < parts.size(); ++i)
{
curpath += parts[i] + SLASH;
if( mkdir(curpath, 0755) == 0 )
continue;
if(errno == EEXIST)
continue; // we expect to see this error
// Log the error, but continue on.
/* When creating a directory that already exists over Samba, Windows is
* returning ENOENT instead of EEXIST. */
/* On Win32 when Path is only a drive letter (e.g. "i:\"), the result is
* EINVAL. */
if( LOG )
LOG->Warn("Couldn't create %s: %s", curpath.c_str(), strerror(errno) );
/* Make sure it's a directory. */
FlushDirCache();
if( !IsADirectory(curpath) )
{
if( LOG )
LOG->Warn("Couldn't create %s: path exists and is not a directory", curpath.c_str() );
// HACK: IsADirectory doesn't work if Path contains a drive letter.
// So, ignore IsADirectory's result and continue trying to create
// directories anyway. This shouldn't change behavior, but
// is inefficient because we don't bail early on an error.
//return false;
}
}
return true;
}
bool Rename( const char *oldname, const char *newname )
{
return 0 == rename( oldname, newname );
}
/* Reference: http://www.theorem.com/java/CRC32.java, rewritten by Glenn Maynard. /* Reference: http://www.theorem.com/java/CRC32.java, rewritten by Glenn Maynard.
* Public domain. */ * Public domain. */
unsigned int GetHashForString ( CString s ) unsigned int GetHashForString ( CString s )
+12 -4
View File
@@ -13,7 +13,6 @@
*/ */
#include <map> #include <map>
#include "RageUtil_FileDB.h"
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// SAFE_ Macros // SAFE_ Macros
@@ -175,9 +174,6 @@ void split( const wstring &Source, const wstring &Deliminator, vector<wstring> &
CString join(const CString &Deliminator, const CStringArray& Source); CString join(const CString &Deliminator, const CStringArray& Source);
CString GetCwd(); CString GetCwd();
bool CreateDirectories( CString Path );
bool Rename( const char *oldname, const char *newname );
void GetDirListing( CString sPath, CStringArray &AddTo, bool bOnlyDirs=false, bool bReturnPathToo=false );
unsigned int GetHashForString( CString s ); unsigned int GetHashForString( CString s );
unsigned int GetHashForFile( CString sPath ); unsigned int GetHashForFile( CString sPath );
@@ -280,4 +276,16 @@ struct char_traits_char_nocase: public char_traits<char>
}; };
typedef basic_string<char,char_traits_char_nocase> istring; typedef basic_string<char,char_traits_char_nocase> istring;
/* Compatibility/convenience shortcuts. These are actually defined in RageFileManager.h, but
* declared here since they're used in many places. */
void GetDirListing( CString sPath, CStringArray &AddTo, bool bOnlyDirs=false, bool bReturnPathToo=false );
bool DoesFileExist( const CString &sPath );
bool IsAFile( const CString &sPath );
bool IsADirectory( const CString &sPath );
bool ResolvePath(CString &path);
unsigned GetFileSizeInBytes( const CString &sFilePath );
int GetFileModTime( const CString &sPath );
void FlushDirCache();
#endif #endif