Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

# KeosFile.cpp

Go to the documentation of this file.

    00001 /*
    00002  * This source file is part of KEOS (Free 3D Engine)
    00003  * For the latest info, see http://www.keosengine.org/
    00004  * E-mails : thierry.vouriot@keosengine.org, yeri@keosengine.org
    00005  *
    00006  * This program is free software; you can redistribute it and/or modify it under
    00007  * the terms of the GNU Lesser General Public License as published by the Free Software
    00008  * Foundation; either version 2 of the License, or (at your option) any later
    00009  * version.
    00010  *
    00011  * This program is distributed in the hope that it will be useful, but WITHOUT
    00012  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
    00013  * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
    00014  *
    00015  * You should have received a copy of the GNU Lesser General Public License along with
    00016  * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
    00017  * Place - Suite 330, Boston, MA 02111-1307, USA, or go to
    00018  * http://www.gnu.org/copyleft/lesser.txt.
    00019  *
    00020  */
    00021
    00022 #include "KeosFile.h"
    00023
    00024 namespace Keos
    00025 {
    00026     //=======================================================================
    00027     // CFile implementation
    00028     //=======================================================================
    00029
    00030     //-----------------------------------------------------------------------
    00031     CFile::CFile(const String& strName) :
    00032     m_strName(strName)
    00033     {
    00034         std::replace(m_strName.begin(), m_strName.end(), '/', '\\');
    00035     }
    00036
    00037     //-----------------------------------------------------------------------
    00038     CFile::CFile(const char* strName) :
    00039     m_strName(strName)
    00040     {
    00041         std::replace(m_strName.begin(), m_strName.end(), '/', '\\');
    00042     }
    00043
    00044     //-----------------------------------------------------------------------
    00045     bool CFile::Exists() const
    00046     {
    00047               std::ifstream File(m_strName.c_str());
    00048         return File.is_open();
    00049     }
    00050
    00051     //-----------------------------------------------------------------------
    00052     const String& CFile::Fullname() const
    00053     {
    00054         return m_strName;
    00055     }
    00056
    00057     //-----------------------------------------------------------------------
    00058     String CFile::Filename() const
    00059     {
    00060         String::size_type Pos = m_strName.find_last_of("\\/");
    00061
    00062         if (Pos != String::npos)
    00063             return m_strName.substr(Pos + 1, String::npos);
    00064         else
    00065             return m_strName;
    00066     }
    00067
    00068     //-----------------------------------------------------------------------
    00069     String CFile::ShortFilename() const
    00070     {
    00071         return Filename().substr(0, Filename().find_last_of("."));
    00072     }
    00073
    00074     //-----------------------------------------------------------------------
    00075     String CFile::Extension() const
    00076     {
    00077         String::size_type Pos = m_strName.find_last_of(".");
    00078         if (Pos != String::npos)
    00079             return m_strName.substr(Pos + 1, String::npos);
    00080         else
    00081             return "";
    00082     }
    00083
    00084 } // namespace Keos