Guiliani  Version 2.5 revision 7293 (documentation build 13)
GUIDirectory.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_DIRECTORY__H_
11#define GUI_DIRECTORY__H_
12
13#include "GUIDirInfo.h"
14
16
38{
39public:
40
43
51 {
52 DIRECTORIES = 0x001,
53 FILES = 0x002,
54 NOSYMLINK = 0x004,
55 READABLE = 0x008,
56 WRITABLE = 0x010,
57 EXECUTABLE = 0x020,
58 HIDDEN = 0x040,
59 SYSTEM = 0x080,
60 SYMLINK = 0x100,
61 ALL = 0x200
62 };
63
68 {
69 NAME = 0x00,
70 TIME = 0x01,
71 SIZE = 0x02,
72 TYPE = 0x04
73 };
74
81 CGUIDirectory(const eC_String& kPath = "", const eC_String& kNameFilter = "");
82
95 CGUIDirectory(const eC_String &kPath, const StringList_t& kNameFilter,
96 eC_UInt uiFilter = ALL, SortFlag_t eSort = NAME,
97 eC_Bool bSortCaseInsensitive = true);
98
102 CGUIDirectory(const CGUIDirectory& kDirectory);
103
109
112 virtual ~CGUIDirectory();
113
117 eC_String GetAbsPath() const;
118
130 eC_Bool ChangeDirectory(const eC_String& kDirName);
131
138
142
147 inline eC_UInt CountFiles() {ListFiles(); return m_kDirInfoList.GetQuantity();}
148
155 eC_String GetDirName() const;
156
163
170 {
171 ListFiles();
172 return m_kDirInfoList;
173 }
174
181
185 virtual eC_Bool CheckExist() const = 0;
186
192 eC_UInt GetFilterAttr() const
193 {
194 return m_uiFilter;
195 }
196
200 virtual eC_Bool IsAbsPath() const;
201
205 virtual eC_Bool IsReadable() const = 0;
206
210 virtual eC_Bool IsRoot() const = 0;
211
216
221 virtual eC_Bool CreateSubDir(const eC_String& kDirName) = 0;
222
227 {
228 return m_kNameFilters;
229 }
230
235 void SetNameFilters(const eC_String& kNameFilter);
236
240 void SetNameFilters(const StringList_t& kNameFilter);
241
247 virtual eC_Bool RemoveFile(const eC_String& kFileName) = 0;
248
255 virtual eC_Bool RenameFile(const eC_String &kOldName, const eC_String & kNewName) = 0;
256
265 virtual eC_Bool RemoveSubDir(const eC_String& kDirName, eC_Bool bRecursive = false) = 0;
266
272 void SetFilter (eC_UInt uiFilter);
273
278
282 inline SortFlag_t GetSortFlag () const
283 {
284 return m_eSortFlag;
285 }
286
291 void SetSortCaseInSensitive(eC_Bool bSortCaseInsensitive);
292
296 inline eC_Bool GetSortCaseInSensitive() const
297 {
299 }
300
304
313 const CGUIDirInfo* GetDirInfo(const eC_String& kFilePath);
314
319 inline void SetListSpecialFileFlag(eC_Bool bListSpecialFile) {m_bListSpecialFile = bListSpecialFile;}
320
321protected:
322
325 virtual void ListFiles() = 0;
326
331
336
340
345
348 eC_String m_kDirPath;
349
353
357 eC_UInt m_uiFilter;
358
362
366
371
377
381
385
393
398
402
403private:
410 eC_String UpperString(const eC_String& kOrgStr) const;
411
419 template<class T>
420 void QuickSort(eC_TArray<T>& kArray, eC_Int iFirst, eC_Int iLast, CGUIDirInfo::DirInfoPtrList_t& kList);
421
422};
423
424#endif
Describes a file in the file system.
Definition: GUIDirInfo.h:37
Allows accessing a directory, listing its contents and manipulate the contained files and directories...
Definition: GUIDirectory.h:38
void FreeDirInfoList()
eC_Bool m_bSortDirsFirst
Definition: GUIDirectory.h:370
CGUIDirectory(const eC_String &kPath, const StringList_t &kNameFilter, eC_UInt uiFilter=ALL, SortFlag_t eSort=NAME, eC_Bool bSortCaseInsensitive=true)
void RevertSortList()
virtual eC_Bool IsAbsPath() const
virtual void ListFiles()=0
eC_Bool m_bListSpecialFile
Definition: GUIDirectory.h:397
CGUIDirectory & operator=(const CGUIDirectory &kDirectory)
eC_String GetDirName() const
eC_UInt m_uiFilter
Definition: GUIDirectory.h:357
StringList_t GetEntryFileNameList()
StringList_t GetNameFilters() const
Definition: GUIDirectory.h:226
CGUIDirectory(const CGUIDirectory &kDirectory)
void FilterList()
SortFlag_t
Definition: GUIDirectory.h:68
@ TIME
Sort by modification time.
Definition: GUIDirectory.h:70
@ SIZE
Sort by file size.
Definition: GUIDirectory.h:71
@ NAME
Sort by name.
Definition: GUIDirectory.h:69
@ TYPE
Sort by file type.
Definition: GUIDirectory.h:72
eC_Bool ChangeDirectory(const eC_String &kDirName)
virtual eC_Bool IsReadable() const =0
void RefreshList()
eC_UInt GetFilterAttr() const
Definition: GUIDirectory.h:192
virtual ~CGUIDirectory()
void SetNameFilters(const eC_String &kNameFilter)
eC_Bool GetSortCaseInSensitive() const
Definition: GUIDirectory.h:296
virtual eC_Bool RemoveFile(const eC_String &kFileName)=0
eC_Bool ChangeToParentDir()
virtual eC_Bool RenameFile(const eC_String &kOldName, const eC_String &kNewName)=0
virtual eC_Bool CheckExist() const =0
void SetFilter(eC_UInt uiFilter)
StringList_t m_kNameFilters
Definition: GUIDirectory.h:352
eC_Bool m_bListNeedRecreation
Definition: GUIDirectory.h:392
eC_Bool m_bSortCaseInsensitive
Definition: GUIDirectory.h:365
CGUIDirectory(const eC_String &kPath="", const eC_String &kNameFilter="")
eC_String m_kCurrentWorkingDir
Definition: GUIDirectory.h:401
const CGUIDirInfo * GetDirInfo(const eC_String &kFilePath)
eC_String GetAbsPath() const
void SetNameFilters(const StringList_t &kNameFilter)
void MakePathAbs()
eC_String m_kDirPath
Definition: GUIDirectory.h:348
StringList_t GetEntryList()
virtual eC_Bool CreateSubDir(const eC_String &kDirName)=0
void SetSortFlag(SortFlag_t eSort)
eC_UInt CountFiles()
Definition: GUIDirectory.h:147
virtual eC_Bool RemoveSubDir(const eC_String &kDirName, eC_Bool bRecursive=false)=0
Filter_t
Definition: GUIDirectory.h:51
@ READABLE
List the files that are readable.
Definition: GUIDirectory.h:55
@ SYSTEM
List the system files.
Definition: GUIDirectory.h:59
@ SYMLINK
List the symlinks.
Definition: GUIDirectory.h:60
@ ALL
List all the files and directories.
Definition: GUIDirectory.h:61
@ DIRECTORIES
List the directories.
Definition: GUIDirectory.h:52
@ HIDDEN
List the hidden files.
Definition: GUIDirectory.h:58
@ EXECUTABLE
List files for which the application has execute access.
Definition: GUIDirectory.h:57
@ NOSYMLINK
Do not include symlinks.
Definition: GUIDirectory.h:54
@ WRITABLE
List the files that are writable.
Definition: GUIDirectory.h:56
@ FILES
List the files.
Definition: GUIDirectory.h:53
void SortSubList(CGUIDirInfo::DirInfoPtrList_t &kList)
virtual eC_Bool IsRoot() const =0
CGUIDirInfo::DirInfoPtrList_t m_kDirInfoList
Definition: GUIDirectory.h:376
SortFlag_t m_eSortFlag
Definition: GUIDirectory.h:361
void SetListSpecialFileFlag(eC_Bool bListSpecialFile)
Definition: GUIDirectory.h:319
SortFlag_t GetSortFlag() const
Definition: GUIDirectory.h:282
eC_TListDoubleLinked< eC_String > StringList_t
A list of strings.
Definition: GUIDirectory.h:42
CGUIDirInfo::DirInfoPtrList_t m_kDirectoriesList
Definition: GUIDirectory.h:380
CGUIDirInfo::DirInfoPtrList_t m_kFilesList
Definition: GUIDirectory.h:384
void SetSortCaseInSensitive(eC_Bool bSortCaseInsensitive)
void SortDirInfoList()
const CGUIDirInfo::DirInfoPtrList_t & GetEntryInfoList()
Definition: GUIDirectory.h:169
eC_UInt GetQuantity() const
Definition: eC_TList_doubleLinked.h:587