OpendTect  6.6
file.h
Go to the documentation of this file.
1 #pragma once
2 
3 /*+
4 ________________________________________________________________________
5 
6  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
7  Author: Nanne Hemstra
8  Date: January 2010
9  Contents: File utitlities
10  RCS: $Id$
11 ________________________________________________________________________
12 
13 -*/
14 
15 #include "basicmod.h"
16 #include "enums.h"
17 #include "gendefs.h"
18 #include "timefun.h"
19 
20 class BufferStringSet;
21 class Executor;
22 
23 
26 namespace File
27 {
28 
29 mGlobal(Basic) bool exists(const char*);
30 mGlobal(Basic) bool isReadable(const char*);
31 mGlobal(Basic) bool isEmpty(const char*);
32 mGlobal(Basic) bool isDirEmpty(const char*);
33 mGlobal(Basic) bool isFile(const char*);
34 mGlobal(Basic) bool isDirectory(const char*);
35 mGlobal(Basic) BufferString findExecutable(const char* exenm,
36  const BufferStringSet& paths,
37  bool includesyspath=true );
38 
39 mGlobal(Basic) const char* getCanonicalPath(const char*);
40 mGlobal(Basic) const char* getAbsolutePath(const char* dir,
41  const char* relfnm);
42 mGlobal(Basic) const char* getRelativePath(const char* reltodir,
43  const char* fnm);
44 mGlobal(Basic) void makeRecursiveFileList(const char* dir,
45  BufferStringSet& filelist,
46  bool followlinks=false);
47 
48 mGlobal(Basic) bool createLink(const char* from,const char* to);
49 mGlobal(Basic) bool isLink(const char*);
50 mGlobal(Basic) const char* linkTarget(const char* linkname);
52 mGlobal(Basic) const char* linkEnd(const char* linkname);
55 mGlobal(Basic) const char* linkValue(const char* linkname);
57 
58 mGlobal(Basic) void hide(const char*,bool yn);
59 mGlobal(Basic) bool isHidden(const char*);
60 mGlobal(Basic) bool isWritable(const char*);
61 mGlobal(Basic) bool makeWritable(const char*,bool yesno,
62  bool recursive);
63 mGlobal(Basic) bool makeReadOnly(const char* fnm, bool recursive);
64 mGlobal(Basic) bool isExecutable(const char*);
65 mGlobal(Basic) bool makeExecutable(const char*,bool yesno);
66 mGlobal(Basic) void setSystemFileAttrib(const char*,bool yn);
67 mGlobal(Basic) bool hasSystemFileAttrib(const char*);
68 mGlobal(Basic) bool setPermissions(const char*,const char* perms,
69  bool recursive);
70 mGlobal(Basic) bool isInUse(const char* fnm);
71 
72 mDeprecated ("Use isInUse instead")
73 mGlobal(Basic) bool isFileInUse(const char* fnm);
74 
76 mGlobal(Basic) bool listDir(const char*,DirListType,
77  BufferStringSet& fnames,const char* mask=0);
78 mGlobal(Basic) bool createDir(const char*);
79 mGlobal(Basic) bool rename(const char* oldname,const char* newname,
80  uiString* errmsg=nullptr);
81 mGlobal(Basic) bool copy(const char* from,const char* to,
82  BufferString* errmsg=0);
83 mGlobal(Basic) Executor* getRecursiveCopier(const char* from,
84  const char* to);
85 mGlobal(Basic) Executor* getRecursiveDeleter(const char* dirnm,
86  const BufferStringSet* externallist=0,
87  bool filesonly=false);
88 mGlobal(Basic) bool resize(const char*,od_int64);
89 mGlobal(Basic) bool remove(const char*);
90 mGlobal(Basic) bool saveCopy(const char* from,const char* to);
91 mGlobal(Basic) bool copyDir(const char* from,const char* to,
92  BufferString* errmsg=0);
93 mGlobal(Basic) bool removeDir(const char*);
94 mGlobal(Basic) bool changeDir(const char* path);
95 
96 mGlobal(Basic) bool getContent(const char*,BufferString&);
97 mGlobal(Basic) od_int64 getFileSize(const char* fnm,
98  bool followlink=true);
99 mGlobal(Basic) od_int64 getKbSize(const char*);
101 mGlobal(Basic) BufferString getFileSizeString(const char* fnm);
102 
103 mGlobal(Basic) const char* timeCreated(const char* filenm,
104  const char* fmt=Time::defDateTimeFmt());
105 mGlobal(Basic) const char* timeLastModified(const char* filenm,
106  const char* fmt=Time::defDateTimeFmt());
107 mGlobal(Basic) od_int64 getTimeInSeconds(const char*,bool modif=true);
108 mGlobal(Basic) od_int64 getTimeInMilliSeconds( const char* fnm,
109  bool lastmodif=true );//since day start
110 
111 mGlobal(Basic) const char* getCurrentPath();
112 mGlobal(Basic) const char* getHomePath();
113 mGlobal(Basic) const char* getTempPath();
114 mGlobal(Basic) const char* getUserAppDataPath();
115 mGlobal(Basic) const char* getRootPath(const char* path);
116 
117 mGlobal(Basic) const char* asciiFilesFilter();
118 mGlobal(Basic) const char* allFilesFilter();
119 mGlobal(Basic) const char* textFilesFilter();
120 
121 
122 enum ViewStyle { Text, Table, Log, Bin };
124 
126 {
127 public:
128 
130  : style_(vs)
131  , editable_(false)
132  , maxnrlines_(vs==Table ? 500 : 10000) {}
133 
134  static const char* sKeyFile() { return "file"; }
135  static const char* sKeyMaxLines() { return "maxlines"; }
136  static const char* sKeyStyle() { return "style"; }
137  static const char* sKeyEdit() { return "edit"; }
138 
141  bool editable_;
142 
143 };
144 
145 mGlobal(Basic) bool launchViewer(const char*,
146  const ViewPars& vp=ViewPars());
147 
148  /* Internal use only: */
149 mGlobal(Basic) bool initTempDir();
150 
151 
152 } // namespace File
153 
154 
File::timeCreated
const char * timeCreated(const char *filenm, const char *fmt=Time::defDateTimeFmt())
File::createLink
bool createLink(const char *from, const char *to)
File::getFileSize
int64_t getFileSize(const char *fnm, bool followlink=true)
bytes
File::linkTarget
const char * linkTarget(const char *linkname)
Direct, first target.
File::isHidden
bool isHidden(const char *)
File::isLink
bool isLink(const char *)
Conv::to
T to(const F &fr)
Definition: convert.h:34
File::getTempPath
const char * getTempPath()
mGlobal
#define mGlobal(module)
Definition: commondefs.h:180
File::isDirectory
bool isDirectory(const char *)
Time::defDateTimeFmt
const char * defDateTimeFmt()
File::copy
bool copy(const char *from, const char *to, BufferString *errmsg=0)
File::changeDir
bool changeDir(const char *path)
BufferStringSet
Set of BufferString objects.
Definition: bufstringset.h:26
File::getTimeInSeconds
int64_t getTimeInSeconds(const char *, bool modif=true)
File::getRecursiveDeleter
Executor * getRecursiveDeleter(const char *dirnm, const BufferStringSet *externallist=0, bool filesonly=false)
File::ViewPars::ViewPars
ViewPars(ViewStyle vs=Text)
Definition: file.h:129
File::ViewPars::maxnrlines_
int maxnrlines_
max nr bytes when Bin
Definition: file.h:140
File::getContent
bool getContent(const char *, BufferString &)
File::AllEntriesInDir
@ AllEntriesInDir
Definition: file.h:75
od_int64
#define od_int64
Definition: plftypes.h:35
File::ViewPars::sKeyMaxLines
static const char * sKeyMaxLines()
Definition: file.h:135
File::DirListType
DirListType
Definition: file.h:75
File::textFilesFilter
const char * textFilesFilter()
File::getAbsolutePath
const char * getAbsolutePath(const char *dir, const char *relfnm)
File::ViewPars::sKeyEdit
static const char * sKeyEdit()
Definition: file.h:137
File::copyDir
bool copyDir(const char *from, const char *to, BufferString *errmsg=0)
mDeclareNameSpaceEnumUtils
#define mDeclareNameSpaceEnumUtils(mod, enm)
Definition: enums.h:273
File::getTimeInMilliSeconds
int64_t getTimeInMilliSeconds(const char *fnm, bool lastmodif=true)
File::isEmpty
bool isEmpty(const char *)
File::resize
bool resize(const char *, int64_t)
Table
Definition: geom2dascio.h:20
File::removeDir
bool removeDir(const char *)
File::makeExecutable
bool makeExecutable(const char *, bool yesno)
File::makeRecursiveFileList
void makeRecursiveFileList(const char *dir, BufferStringSet &filelist, bool followlinks=false)
File::getRootPath
const char * getRootPath(const char *path)
File::hide
void hide(const char *, bool yn)
only Windows
File::makeReadOnly
bool makeReadOnly(const char *fnm, bool recursive)
File::isDirEmpty
bool isDirEmpty(const char *)
File::Table
@ Table
Definition: file.h:122
File::Text
@ Text
Definition: file.h:122
File::hasSystemFileAttrib
bool hasSystemFileAttrib(const char *)
File::getRecursiveCopier
Executor * getRecursiveCopier(const char *from, const char *to)
File::Bin
@ Bin
Definition: file.h:122
File::createDir
bool createDir(const char *)
File::initTempDir
bool initTempDir()
File::remove
bool remove(const char *)
File::isInUse
bool isInUse(const char *fnm)
File::listDir
bool listDir(const char *, DirListType, BufferStringSet &fnames, const char *mask=0)
File::isWritable
bool isWritable(const char *)
mClass
#define mClass(module)
Definition: commondefs.h:181
mDeprecated
#define mDeprecated(msg)
Definition: plfdefs.h:215
File::DirsInDir
@ DirsInDir
Definition: file.h:75
Executor
Specification to enable chunkwise execution of a process.
Definition: executor.h:39
gendefs.h
File::saveCopy
bool saveCopy(const char *from, const char *to)
File::linkEnd
const char * linkEnd(const char *linkname)
File::ViewPars::editable_
bool editable_
only if possible
Definition: file.h:141
File::getRelativePath
const char * getRelativePath(const char *reltodir, const char *fnm)
File::ViewPars::style_
ViewStyle style_
Definition: file.h:139
File::Log
@ Log
Definition: file.h:122
File::asciiFilesFilter
const char * asciiFilesFilter()
File::ViewStyle
ViewStyle
Definition: file.h:122
File::setSystemFileAttrib
void setSystemFileAttrib(const char *, bool yn)
File::exists
bool exists(const char *)
File::FilesInDir
@ FilesInDir
Definition: file.h:75
File::ViewPars::sKeyStyle
static const char * sKeyStyle()
Definition: file.h:136
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
File::isFileInUse
bool isFileInUse(const char *fnm)
File::getHomePath
const char * getHomePath()
File::makeWritable
bool makeWritable(const char *, bool yesno, bool recursive)
File::getFileSizeString
BufferString getFileSizeString(int64_t fileszinkb)
uiString
String that is able to hold international (UTF-8) strings for the user interface.
Definition: uistring.h:121
File::getUserAppDataPath
const char * getUserAppDataPath()
File::findExecutable
BufferString findExecutable(const char *exenm, const BufferStringSet &paths, bool includesyspath=true)
enums.h
File::getKbSize
int64_t getKbSize(const char *)
File::allFilesFilter
const char * allFilesFilter()
File::timeLastModified
const char * timeLastModified(const char *filenm, const char *fmt=Time::defDateTimeFmt())
File::ViewPars::sKeyFile
static const char * sKeyFile()
Definition: file.h:134
File::launchViewer
bool launchViewer(const char *, const ViewPars &vp=ViewPars())
File::getCurrentPath
const char * getCurrentPath()
File::rename
bool rename(const char *oldname, const char *newname, uiString *errmsg=nullptr)
File::isFile
bool isFile(const char *)
File::setPermissions
bool setPermissions(const char *, const char *perms, bool recursive)
File::ViewPars
Definition: file.h:126
timefun.h
File::isReadable
bool isReadable(const char *)
File
Interface for several file and directory related services.
Definition: file.h:27
File::isExecutable
bool isExecutable(const char *)
File::linkValue
const char * linkValue(const char *linkname)
not sure why and when to use - used by zip
File::getCanonicalPath
const char * getCanonicalPath(const char *)

Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B.V. 1995-2021