Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

FileName.h

Go to the documentation of this file.
00001 /*
00002     File:       FileName.h
00003 
00004     Function:   Provides a file spec + related ops.
00005                 Assumed representation is path:file:extension.
00006 
00007     Author:     Andrew Willmott, (c) 1996-1999
00008 */
00009 
00010 #ifndef __FileName__
00011 #define __FileName__
00012 
00013 #include "cl/String.h"
00014 #include "cl/Flags.h"
00015 #include <stdio.h>
00016 
00017 class FileName
00019 {
00020 public:
00021     FileName() : path(), name(), extension(), flags() {};
00022 
00023     FileName    &SetPath(StrConst path);
00025     FileName    &SetRelPath(StrConst path);
00032     String      GetPath() const;
00034 
00035     StrConst    GetFile() const
00037                 { return(name); };
00038     StrConst    GetExtension() const
00040                 { return(extension); };
00041     StrConst    GetDir() const
00043                 { return(path); };
00044 
00045     FileName    &SetFile(StrConst file)
00047                 { name = file; return(SELF); };
00048     FileName    &SetExtension(StrConst ext)
00050                 { extension = ext; return(SELF); };
00051     FileName    &SetDir(StrConst dir)
00053                 { path = dir; return(SELF); };
00054 
00055     Void        AddExtension(StrConst ext);
00058     Void        RemoveExtension();
00062     Bool        Exists() const;         
00063     Bool        IsReadable() const;     
00064     Bool        IsWritable() const;     
00065     Long        GetTimeStamp() const;   
00066 
00067     FILE        *FOpen(StrConst permissions) const
00069                 { return(fopen(GetPath(), permissions)); };
00070 
00071     Int         FindFileExtension(StrConst extensions[],
00072                     Bool allowCompressed = true);
00075     FileName    &MakeUnique();
00082     Int         DecompressSetup();
00084     Void        DecompressCleanup();
00086     Void        AddCompExt();
00088                 
00089     Flags32     flags;      
00090 
00091 protected:
00092     String      path;       
00093     String      name;       
00094     String      extension;  
00095 };
00096 
00097 String TempPath();
00098 
00099 enum FN_Flags
00100 {
00101     FN_Gzipped = 0x0001,
00102     FN_Bz2ed = 0x0002,
00103     FN_Compress = 0x0004,
00104 
00105     FN_IsCompressed = 0x000F
00106 };
00107 
00108 enum FN_Err
00109 {
00110     kFileNotFound = -1,
00111     kBadExtension = -2
00112 };
00113 
00114 #endif

Generated at Sat Aug 5 00:16:32 2000 for Class Library by doxygen 1.1.0 written by Dimitri van Heesch, © 1997-2000