Newer
Older
/***************************************************************************
FileName.cpp - description
-------------------
begin : 2007/06/18
copyright : (C) 2007 by Tomas Oberhuber
***************************************************************************/
/* See Copyright Notice in tnl/Copyright */
#include <sstream>
#include <iomanip>
#include <cstring>
#include <cstdlib>
#include <TNL/FileName.h>
#include <TNL/String.h>
#include <TNL/Math.h>
FileName::FileName()
: index( 0 ), digitsCount( 5 )
{
}
FileName::FileName( const String& fileNameBase )
: fileNameBase( fileNameBase ),
index( 0 ),
digitsCount( 5 )
{
}
FileName::FileName( const String& fileNameBase,
const String& extension )
: fileNameBase( fileNameBase ),
extension( extension ),
index( 0 ),
digitsCount( 5 )
{
}
void FileName::setFileNameBase( const String& fileNameBase )
{
this->fileNameBase = fileNameBase;
}
void FileName::setExtension( const String& extension )
{
this->extension = extension;
}
void FileName::setIndex( const int index )
{
this->index = index;
}
void FileName::setDigitsCount( const int digitsCount )
{
this->digitsCount = digitsCount;
}
void FileName::setDistributedSystemNodeId( int nodeId )
{
this->distributedSystemNodeId = "-";
this->distributedSystemNodeId += convertToString( nodeId );
}
String FileName::getFileName()
{
std::stringstream stream;
stream << this->fileNameBase
<< std::setw( this->digitsCount )
<< std::setfill( '0' )
<< this->index
<< this->distributedSystemNodeId
<< "." << this->extension;
return String( stream.str().data() );
}
String getFileExtension( const String fileName )
{
int size = fileName. getLength();
int i = 1;
while( fileName. getString()[ size - i ] != '.' && size > i ) i ++ ;
result.setString( fileName. getString(), size - i + 1 );
return result;
}
void removeFileExtension( String& fileName )
while( fileName. getString()[ size - i ] != '.' && size > i ) i ++ ;
fileName. setString( fileName. getString(), 0, i );