DOos.h

Classes

DOos -- DO for accessing os-specific functions (full description)

class DOos

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)

Description

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

To Do

Member Description

static Vector<Bool> isValidPathName (const Vector<String>& pathName)

Are the given path names valid? I.e. does a file with the given name exist or can it be created?

static Vector<Bool> fileExists (const Vector<String>& fileName, Bool follow = True)

Do the given files exist? If follow is False, symbolic links are not followed.

static Vector<String> fileType (const Vector<String>& fileName, Bool follow = True)

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.

static Vector<String> fullName (const Vector<String>& fileName)

Return the full absolute names for the given names.

static Vector<String> dirName (const Vector<String>& fileName)

Return the full directory names of the given files.

static Vector<String> baseName (const Vector<String>& fileName)

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.

static Vector<Int> lockInfo (const String& tableName)

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).