Allow to skip extensions of filenames.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@1541 dfc29bdd-3216-0410-991c-e03cc46cb475master
parent
ec4d244224
commit
60f1955826
|
@ -120,7 +120,7 @@ public:
|
||||||
//! Returns the base part of a filename, i.e. the name without the directory
|
//! Returns the base part of a filename, i.e. the name without the directory
|
||||||
//! part. If no directory is prefixed, the full name is returned.
|
//! part. If no directory is prefixed, the full name is returned.
|
||||||
/** \param filename: The file to get the basename from */
|
/** \param filename: The file to get the basename from */
|
||||||
virtual core::stringc getFileBasename(const core::stringc& filename) const = 0;
|
virtual core::stringc getFileBasename(const core::stringc& filename, bool keepExtension=true) const = 0;
|
||||||
|
|
||||||
//! Creates a list of files and directories in the current working directory and returns it.
|
//! Creates a list of files and directories in the current working directory and returns it.
|
||||||
/** \return a Pointer to the created IFileList is returned. After the list has been used
|
/** \return a Pointer to the created IFileList is returned. After the list has been used
|
||||||
|
|
|
@ -427,7 +427,7 @@ public:
|
||||||
{
|
{
|
||||||
if (!str)
|
if (!str)
|
||||||
return false;
|
return false;
|
||||||
s32 i;
|
u32 i;
|
||||||
for(i=0; array[i] && str[i] && i < n; ++i)
|
for(i=0; array[i] && str[i] && i < n; ++i)
|
||||||
if (array[i] != str[i])
|
if (array[i] != str[i])
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -241,15 +241,26 @@ core::stringc CFileSystem::getFileDir(const core::stringc& filename) const
|
||||||
|
|
||||||
//! returns the base part of a filename, i.e. all except for the directory
|
//! returns the base part of a filename, i.e. all except for the directory
|
||||||
//! part. If no directory path is prefixed, the full name is returned.
|
//! part. If no directory path is prefixed, the full name is returned.
|
||||||
core::stringc CFileSystem::getFileBasename(const core::stringc& filename) const
|
core::stringc CFileSystem::getFileBasename(const core::stringc& filename, bool keepExtension) const
|
||||||
{
|
{
|
||||||
// find last forward or backslash
|
// find last forward or backslash
|
||||||
s32 lastSlash = filename.findLast('/');
|
s32 lastSlash = filename.findLast('/');
|
||||||
const s32 lastBackSlash = filename.findLast('\\');
|
const s32 lastBackSlash = filename.findLast('\\');
|
||||||
lastSlash = lastSlash > lastBackSlash ? lastSlash : lastBackSlash;
|
lastSlash = core::max_(lastSlash, lastBackSlash);
|
||||||
|
s32 end = 0;
|
||||||
|
if (!keepExtension)
|
||||||
|
{
|
||||||
|
end = filename.findLast('.');
|
||||||
|
if (end == -1)
|
||||||
|
end=0;
|
||||||
|
else
|
||||||
|
end = filename.size()-end;
|
||||||
|
}
|
||||||
|
|
||||||
if ((u32)lastSlash < filename.size())
|
if ((u32)lastSlash < filename.size())
|
||||||
return filename.subString(lastSlash+1, filename.size()-lastSlash);
|
return filename.subString(lastSlash+1, filename.size()-lastSlash-1-end);
|
||||||
|
else if (end != 0)
|
||||||
|
return filename.subString(0, filename.size()-end);
|
||||||
else
|
else
|
||||||
return filename;
|
return filename;
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,7 +65,7 @@ public:
|
||||||
//! Returns the base part of a filename, i.e. the name without the directory
|
//! Returns the base part of a filename, i.e. the name without the directory
|
||||||
//! part. If no directory is prefixed, the full name is returned.
|
//! part. If no directory is prefixed, the full name is returned.
|
||||||
/** \param filename: The file to get the basename from */
|
/** \param filename: The file to get the basename from */
|
||||||
core::stringc getFileBasename(const core::stringc& filename) const;
|
core::stringc getFileBasename(const core::stringc& filename, bool keepExtension=true) const;
|
||||||
|
|
||||||
//! Creates a list of files and directories in the current working directory
|
//! Creates a list of files and directories in the current working directory
|
||||||
//! and returns it.
|
//! and returns it.
|
||||||
|
|
Loading…
Reference in New Issue