Guiliani  Version 2.6 revision 7293 (documentation build 12)
GUIFileSysWrap.h
1/*
2* Copyright (C) TES Electronic Solutions GmbH,
3* All Rights Reserved.
4* Contact: info@guiliani.de
5*
6* This file is part of the Guiliani HMI framework
7* for the development of graphical user interfaces on embedded systems.
8*/
9
10#ifndef GUI_FILE_SYS_WRAP_H__
11#define GUI_FILE_SYS_WRAP_H__
12
13#include <time.h>
14#include "GUIDirInfo.h"
15#include "GUIDirectory.h"
16#include "eC_File.h"
17
18#include "GUIComponentManager.h"
19
21#define GETFILESYS CGUIFileSysWrap::GetInstance()
22
24
49{
50public:
51 // Guiliani supports two different separators. Backslash (\‍) and Slash (/). The constants defined here enables consistent access out of FileSysWrappers.
52 static const eC_String ms_DirSepWin;
53 static const eC_String ms_DirSepPOSIX;
54
55public:
60
64
67
71 virtual eC_String GetExecutablePath() = 0;
72
79 inline eC_String GetCurrentPath() const {return m_kCurrentPath;}
80
85
89 virtual eC_String GetHomePath() const = 0;
90
94 virtual const eC_String& GetRootPath() const = 0;
95
99 const eC_String& GetWinDirSeparator() const {return ms_DirSepWin;}
100
104 const eC_String& GetPOSIXDirSeparator() const {return ms_DirSepPOSIX;}
105
109 virtual const eC_String &GetDirSeparator() const = 0;
110
117 virtual eC_Bool SetCurrentPath(const eC_String& kPath) = 0;
118
128 const eC_String &kPath = "",
129 const eC_String& kNameFilter = "") const = 0;
130
146 const eC_String &kPath,
147 const CGUIDirectory::StringList_t& kNameFilter,
148 eC_UInt uiFilter = CGUIDirectory::ALL,
150 eC_Bool bCaseInsensitive = true) const = 0;
151
167 const eC_String& kOrgStr,
168 eC_String& kLeftStr,
169 eC_String &kRightStr,
170 const eC_String& kSeparator,
171 eC_Bool bFromLeft) const;
172
179 virtual eC_String MakePlatformPath(const eC_String& kOrgPath) const = 0;
180
191 const eC_String& kOrgPath,
192 eC_String& kResultPath) const;
193
200 const eC_String& kRelPath,
201 eC_String& kAbsPath) const;
202
214 virtual eC_Bool CreateRelativePath(
215 const eC_String& kFromPath,
216 const eC_String& kToPath,
217 eC_String& kResultPath) const;
218
223 virtual eC_String MakeDirectoryPath(const eC_String& kPath) const;
224
230 virtual eC_Bool IsStrAbsolute(const eC_String& kStr) const = 0;
231
235 void DeInit();
236
241 virtual eC_Bool IsDrive(const eC_String& kDirStr) const = 0;
242
263 virtual eC_Bool CpFile(
264 eC_String kSource,
265 eC_String kDest,
266 eC_Bool bOverwrite = false,
267 eC_Bool bCopyEvenIfIdentical = true) = 0;
268
270
275 eC_String GetPath(const eC_String& rkFileName) const;
276
278
284 eC_String GetFileName(const eC_String& rkFileName) const;
285
287
293 eC_String GetFileBaseName(const eC_String& rkFileName) const;
294
296
302 eC_String GetFileSuffix(const eC_String& rkFileName) const;
303
313 virtual eC_File* OpenPlatformFile(
314 const eC_String& kPath,
315 eC_Flag uiMode = eC_File::FS_WRITEACCESS | eC_File::FS_READACCESS) const;
316
321 virtual eC_Bool CheckIfFileOrDirectoryExists(const eC_String& kPath) const = 0;
322
328 virtual eC_Bool CheckIfFileExists(const eC_String& kPath) const = 0;
329
335 virtual eC_Bool CheckIfDirectoryExists(const eC_String& kPath) const = 0;
336
341 virtual time_t GetFileDateTime(const eC_String& kPath) const;
342
347 virtual long GetFileSize(const eC_String& kPath) const;
348
353 virtual eC_Bool RemoveFile(const eC_String& kPath) const = 0;
354
355protected:
358 eC_String m_kCurrentPath;
359
364
365private:
370 eC_Int CountNumberOfSeparators(const eC_UTF8* pPath) const;
371};
372
373#endif
Allows accessing a directory, listing its contents and manipulate the contained files and directories...
Definition: GUIDirectory.h:38
SortFlag_t
Definition: GUIDirectory.h:68
@ NAME
Sort by name.
Definition: GUIDirectory.h:69
@ ALL
List all the files and directories.
Definition: GUIDirectory.h:61
The CGUIFileSysWrap class provides an abstract way of accessing directories and files.
Definition: GUIFileSysWrap.h:49
virtual eC_String MakePlatformPath(const eC_String &kOrgPath) const =0
virtual eC_File * OpenPlatformFile(const eC_String &kPath, eC_Flag uiMode=eC_File::FS_WRITEACCESS|eC_File::FS_READACCESS) const
virtual time_t GetFileDateTime(const eC_String &kPath) const
eC_String GetCurrentPath() const
Definition: GUIFileSysWrap.h:79
void SeparateString(const eC_String &kOrgStr, eC_String &kLeftStr, eC_String &kRightStr, const eC_String &kSeparator, eC_Bool bFromLeft) const
virtual long GetFileSize(const eC_String &kPath) const
CGUIFileSysWrap()
Definition: GUIFileSysWrap.h:63
eC_String GetPath(const eC_String &rkFileName) const
Extracts the path from a file name that includes a path.
CGUIDirInfo::DirInfoPtrList_t m_kDrivesList
Definition: GUIFileSysWrap.h:363
virtual const eC_String & GetDirSeparator() const =0
virtual CGUIDirectory * DirAlloc(const eC_String &kPath, const CGUIDirectory::StringList_t &kNameFilter, eC_UInt uiFilter=CGUIDirectory::ALL, CGUIDirectory::SortFlag_t eSort=CGUIDirectory::NAME, eC_Bool bCaseInsensitive=true) const =0
eC_String GetFileSuffix(const eC_String &rkFileName) const
Extracts the extension of a file name.
virtual eC_Bool IsDrive(const eC_String &kDirStr) const =0
virtual eC_Bool SetCurrentPath(const eC_String &kPath)=0
virtual eC_Bool CreateRelativePath(const eC_String &kFromPath, const eC_String &kToPath, eC_String &kResultPath) const
static const eC_String ms_DirSepWin
Directory separator used for windows file system.
Definition: GUIFileSysWrap.h:52
eC_String GetFileName(const eC_String &rkFileName) const
Extracts the file name from a file name that includes a path.
virtual eC_String GetHomePath() const =0
eC_String GetFileBaseName(const eC_String &rkFileName) const
Extracts the base name of a file from a name that includes a path.
virtual eC_String GetExecutablePath()=0
const eC_String & GetWinDirSeparator() const
Definition: GUIFileSysWrap.h:99
virtual eC_Bool MakeNormalizedPlatformPath(const eC_String &kOrgPath, eC_String &kResultPath) const
virtual eC_Bool RemoveFile(const eC_String &kPath) const =0
virtual eC_Bool CheckIfDirectoryExists(const eC_String &kPath) const =0
virtual CGUIDirectory * DirAlloc(const eC_String &kPath="", const eC_String &kNameFilter="") const =0
virtual eC_Bool IsStrAbsolute(const eC_String &kStr) const =0
virtual eC_String MakeDirectoryPath(const eC_String &kPath) const
eC_Bool MakeAbsolutePath(const eC_String &kRelPath, eC_String &kAbsPath) const
virtual ~CGUIFileSysWrap()
Destructor, frees the drives list.
static CGUIFileSysWrap & GetInstance()
virtual eC_Bool CheckIfFileExists(const eC_String &kPath) const =0
virtual eC_Bool CheckIfFileOrDirectoryExists(const eC_String &kPath) const =0
virtual const CGUIDirInfo::DirInfoPtrList_t & GetDrives()=0
virtual const eC_String & GetRootPath() const =0
virtual eC_Bool CpFile(eC_String kSource, eC_String kDest, eC_Bool bOverwrite=false, eC_Bool bCopyEvenIfIdentical=true)=0
const eC_String & GetPOSIXDirSeparator() const
Definition: GUIFileSysWrap.h:104
eC_String m_kCurrentPath
Definition: GUIFileSysWrap.h:358
static const eC_String ms_DirSepPOSIX
Directory seperator used for *NIX file system.
Definition: GUIFileSysWrap.h:53