DOos.h
Classes
- DOos -- DO for accessing os-specific functions (full description)
Interface
- Public Members
- static Vector<Bool> isValidPathName (const Vector<String>& pathName)
- static Vector<Bool> fileExists (const Vector<String>& fileName, Bool follow = True)
- static Vector<String> fileType (const Vector<String>& fileName, Bool follow = True)
- static Vector<String> fileNames (const String& directoryName, const String& fileNamePattern, const String& fileTypes, Bool all = False, Bool follow = True)
- static void makeDirectory (const Vector<String>& directoryNames, Bool makeParent = False)
- static Vector<String> fullName (const Vector<String>& fileName)
- static Vector<String> dirName (const Vector<String>& fileName)
- static Vector<String> baseName (const Vector<String>& fileName)
- static Vector<Double> fileTime (const Vector<String>& fileName, Int whichTime = 1, Bool follow = True)
- static Vector<Double> totalSize (const Vector<String>& fileName, Bool follow = True)
- static Double totalSize (const String& fileName, Bool follow = True)
- static Vector<Double> freeSpace (const Vector<String>& fileName, Bool follow = True)
- static void copy (const String& to, const String& from, Bool overwrite = True, Bool follow = True)
- static void move (const String& to, const String& from, Bool overwrite = True, Bool follow = True)
- static void remove (const String& fileName, Bool recursive, Bool mustExist = True, Bool follow = True)
- static void remove (const Vector<String>& fileNames, Bool recursive, Bool mustExist = True, Bool follow = True)
- static Vector<Int> lockInfo (const String& tableName)
Review Status
- Date Reviewed:
- yyyy/mm/dd
Prerequisite
Etymology
Synopsis
This class is the connection between the Glish os server, and the
OS module. It is meant for access to OS-specific functions, in
particular file handling.
Example
Motivation
Thrown Exceptions
- AipsError if AIPSPATH or HOME is not defined
To Do
- Check for feasable extensions
Member Description
Are the given path names valid?
I.e. does a file with the given name exist or can it be created?
Do the given files exist?
If follow is False, symbolic links are not followed.
Give the type of the given files.
static Vector<String> fileNames (const String& directoryName, const String& fileNamePattern, const String& fileTypes, Bool all = False, Bool follow = True)
Give all file names in the directory matching the given pattern
and file types.
The pattern can be a string like the filename pattern given in
a shell (e.g. '*.cc'). If the string is empty, all files are taken
into account.
Filetypes is a string determining which file types will be selected.
Each character in the string determines a file type. They are:
- r
- regular file
- d
- directory
- s
- symbolic link
- R
- readable file
- W
- writable file
- X
- executable file
The all flag determines if file names starting with a . will also
be selected.
static void makeDirectory (const Vector<String>& directoryNames, Bool makeParent = False)
Make directories. It throws an exception if a file with that
name already exists.
Return the full absolute names for the given names.
Return the full directory names of the given files.
Return the base names of the given files.
static Vector<Double> fileTime (const Vector<String>& fileName, Int whichTime = 1, Bool follow = True)
Get the time of the given files.
whichTime determines which time to return:
1 = time of last access
2 = time of last modification
3 = time of last status change
static Vector<Double> totalSize (const Vector<String>& fileName, Bool follow = True)
static Double totalSize (const String& fileName, Bool follow = True)
Return the total size (in bytes) for each file or directory given.
For a directory the size of all files (recursively) in it is given.
If follow is False, symbolic links are not followed.
static Vector<Double> freeSpace (const Vector<String>& fileName, Bool follow = True)
Return the total size on the devices the given directories are on.
If follow is False, symbolic links are not followed.
static void copy (const String& to, const String& from, Bool overwrite = True, Bool follow = True)
Copy the file (or directory recursively).
If from is a symbolic link and follow is False, only the
symbolic link is copied.
static void move (const String& to, const String& from, Bool overwrite = True, Bool follow = True)
Move the file or directory.
If from is a symbolic link and follow is False, only the
symbolic link is moved.
static void remove (const String& fileName, Bool recursive, Bool mustExist = True, Bool follow = True)
static void remove (const Vector<String>& fileNames, Bool recursive, Bool mustExist = True, Bool follow = True)
Remove the files (or directories recursively).
If fileName is a symbolic link and follow is False, only the
symbolic link is removed.
Tell if a table is used or locked by another process.
It returns a vector containing 3 integers.
The first one tells if the table is in use or locked.
See LockFile::showLock for details.
The second one gives the pid of the process using/locking the table.
The third one tells if the table is permanently locked (0 = not).