Proper folder / file distinction in plugin loading.
This commit is contained in:
parent
403e0d5be4
commit
edd7363edd
@ -287,6 +287,20 @@ bool cFile::Rename(const AString & a_OrigFileName, const AString & a_NewFileName
|
||||
|
||||
|
||||
|
||||
bool cFile::IsFolder(const AString & a_Path)
|
||||
{
|
||||
#ifdef _WIN32
|
||||
return ((GetFileAttributes(a_Path.c_str()) & FILE_ATTRIBUTE_DIRECTORY) != 0);
|
||||
#else
|
||||
struct stat st;
|
||||
return ((stat(a_Path.c_str(), &st) == 0) && S_ISDIR(st.st_mode));
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
int cFile::Printf(const char * a_Fmt, ...)
|
||||
{
|
||||
AString buf;
|
||||
|
@ -99,6 +99,9 @@ public:
|
||||
/// Renames a file, returns true if successful. May fail if dest already exists (libc-dependant)!
|
||||
static bool Rename(const AString & a_OrigFileName, const AString & a_NewFileName);
|
||||
|
||||
/// Returns true if the specified path is a folder
|
||||
static bool IsFolder(const AString & a_Path);
|
||||
|
||||
int Printf(const char * a_Fmt, ...);
|
||||
|
||||
private:
|
||||
|
@ -75,14 +75,14 @@ void cPluginManager::FindPlugins(void)
|
||||
AStringList Files = GetDirectoryContents(PluginsPath.c_str());
|
||||
for (AStringList::const_iterator itr = Files.begin(); itr != Files.end(); ++itr)
|
||||
{
|
||||
if (itr->rfind(".") != AString::npos)
|
||||
if (!cFile::IsFolder(*itr))
|
||||
{
|
||||
// Ignore files, we only want directories
|
||||
// We only want folders
|
||||
continue;
|
||||
}
|
||||
|
||||
// Add plugin name/directory to the list
|
||||
if (m_Plugins.find( *itr ) == m_Plugins.end())
|
||||
if (m_Plugins.find(*itr) == m_Plugins.end())
|
||||
{
|
||||
m_Plugins[ *itr ] = NULL;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user