1 /* Copyright (c) MediaArea.net SARL. All Rights Reserved. 2 * 3 * Use of this source code is governed by a zlib-style license that can 4 * be found in the License.txt file in the root of the source tree. 5 */ 6 7 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 8 // 9 // File name related functions 10 // 11 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 12 13 //--------------------------------------------------------------------------- 14 #ifndef ZenLib_FileNameH 15 #define ZenLib_FileNameH 16 //--------------------------------------------------------------------------- 17 18 //--------------------------------------------------------------------------- 19 #include "ZenLib/Ztring.h" 20 //--------------------------------------------------------------------------- 21 22 namespace ZenLib 23 { 24 25 //*************************************************************************** 26 /// @brief File name manipulation 27 //*************************************************************************** 28 29 class FileName : public ZenLib::Ztring 30 { 31 public : 32 //Constructor/Destructor FileName()33 FileName () : Ztring(){} FileName(const tstring & str)34 FileName (const tstring& str) : Ztring(str){} Ztring(str,pos,n)35 FileName (const tstring& str, size_type pos, size_type n=npos) : Ztring(str, pos, n){} FileName(const Char * s,size_type n)36 FileName (const Char* s, size_type n) : Ztring(s, n){} FileName(const Char * s)37 FileName (const Char* s) : Ztring(s){} FileName(size_type n,char c)38 FileName (size_type n, char c) : Ztring(n, c){} 39 40 //Read/Write 41 ZenLib::Ztring Path_Get () const; 42 ZenLib::Ztring Name_Get () const; 43 ZenLib::Ztring Extension_Get () const; 44 ZenLib::Ztring& Path_Set (const Ztring &Path); 45 ZenLib::Ztring& Name_Set (const Ztring &Name); 46 ZenLib::Ztring& Extension_Set (const Ztring &Extension); 47 48 //Helpers Path_Get(const Ztring & File_Name)49 static ZenLib::Ztring Path_Get (const Ztring &File_Name) {return ((FileName&)File_Name).Path_Get();} Name_Get(const Ztring & File_Name)50 static ZenLib::Ztring Name_Get (const Ztring &File_Name) {return ((FileName&)File_Name).Name_Get();} Extension_Get(const Ztring & File_Name)51 static ZenLib::Ztring Extension_Get (const Ztring &File_Name) {return ((FileName&)File_Name).Extension_Get();} 52 static ZenLib::Ztring TempFileName_Create (const Ztring &Prefix); 53 }; 54 55 //Platform differences 56 extern const Char* FileName_PathSeparator; 57 58 } //NameSpace 59 60 //--------------------------------------------------------------------------- 61 #ifdef __BORLANDC__ 62 #pragma warn .8027 63 #endif 64 //--------------------------------------------------------------------------- 65 66 #endif 67