NCBI C++ ToolKit
|
#include <corelib/ncbifile.hpp>
Public Types | |
enum | ECompareText { eIgnoreEol = eCompareText_IgnoreEol , eIgnoreWs = eCompareText_IgnoreWhiteSpace } |
Mode to compare streams in text form. More... | |
Public Types inherited from CDirEntry | |
enum | EIfEmptyPath { eIfEmptyPath_Empty , eIfEmptyPath_Current } |
What GetDir() should return if the dir entry does not contain path. More... | |
enum | ERelativeToWhat { eRelativeToCwd , eRelativeToExe } |
How to interpret relative paths. More... | |
enum | ECopyFlags { fCF_Overwrite = (1 << 1) , fCF_Update = (1 << 2) | fCF_Overwrite , fCF_Backup = (1 << 3) | fCF_Overwrite , fCF_Safe = (1 << 4) | fCF_Overwrite , fCF_TopDirOnly = (1 << 6) , fCF_EqualTypes = (1 << 7) , fCF_FollowLinks = (1 << 8) , fCF_Verify = (1 << 9) , fCF_PreserveOwner = (1 << 10) , fCF_PreservePerm = (1 << 11) , fCF_PreserveTime = (1 << 12) , fCF_PreserveAll = fCF_PreserveOwner | fCF_PreservePerm | fCF_PreserveTime , fCF_Recursive = (1 << 14) , fCF_SkipUnsupported = (1 << 15) , fCF_Default = fCF_Recursive | fCF_FollowLinks } |
Copy flags. More... | |
enum | ERenameFlags { fRF_Overwrite = (1 << 1) , fRF_Update = (1 << 2) | fCF_Overwrite , fRF_Backup = (1 << 3) | fCF_Overwrite , fRF_EqualTypes = (1 << 4) , fRF_FollowLinks = (1 << 5) , fRF_Default = 0 } |
Rename flags. More... | |
enum | EBackupMode { eBackup_Copy = (1 << 1) , eBackup_Rename = (1 << 2) , eBackup_Default = eBackup_Copy } |
Backup modes. More... | |
enum | EProcessingFlags { fEntry = (1 << 0) , fDir_Self = fEntry , fDir_Files = (1 << 1) , fDir_Subdirs = (1 << 2) , fDir_Recursive = (1 << 3) , fDir_All = fDir_Self + fDir_Files + fDir_Subdirs , fIgnoreMissing = (1 << 4) , fProcessAll = (1 << 5) , eOnlyEmpty = fDir_Self , eEntryOnly = fDir_Self , eTopDirOnly = fDir_Self | fDir_Files , eNonRecursive = fDir_All , eRecursive = fDir_All | fDir_Recursive , eRecursiveStopOnErrors = eRecursive , eRecursiveIgnoreMissing = eRecursive | fIgnoreMissing , eRecursiveNotStopOnErrors = eRecursive | fIgnoreMissing | fProcessAll } |
Entries processing flags. More... | |
enum | EType { eFile = 0 , eDir , ePipe , eLink , eSymLink = eLink , eSocket , eDoor , eBlockSpecial , eCharSpecial , eUnknown } |
Directory entry type. More... | |
enum | EIfAbsent { eIfAbsent_Throw , eIfAbsent_Newer , eIfAbsent_NotNewer } |
What IsNewer() should do if the dir entry does not exist or is not accessible. More... | |
enum | EIfAbsent2 { fHasThisNoPath_Newer = (1 << 0) , fHasThisNoPath_NotNewer = (1 << 1) , fNoThisHasPath_Newer = (1 << 2) , fNoThisHasPath_NotNewer = (1 << 3) , fNoThisNoPath_Newer = (1 << 4) , fNoThisNoPath_NotNewer = (1 << 5) } |
What path version of IsNewer() should do if the dir entry or specified path does not exist or is not accessible. More... | |
enum | EMode { fExecute = 1 , fWrite = 2 , fRead = 4 , fDefault = 8 , fDefaultDirUser = fRead | fExecute | fWrite , fDefaultDirGroup = fRead | fExecute , fDefaultDirOther = fRead | fExecute , fDefaultUser = fRead | fWrite , fDefaultGroup = fRead , fDefaultOther = fRead } |
Directory entry access permissions. More... | |
enum | ESpecialModeBits { fSticky = 1 , fSetGID = 2 , fSetUID = 4 } |
enum | EModeRelative { fModeAdd = 16 , fModeRemove = 32 , fModeNoChange = 64 } |
Relative permissions change modes. More... | |
enum | EModeStringFormat { eModeFormat_Octal , eModeFormat_Symbolic , eModeFormat_List , eModeFormat_Default = eModeFormat_Octal } |
Permission mode string format. More... | |
enum | ETmpFileCreationMode { eTmpFileCreate , eTmpFileGetName } |
Temporary file creation mode. More... | |
enum | ETextBinary { eText , eBinary } |
What type of temporary file to create. More... | |
enum | EAllowRead { eAllowRead , eWriteOnly } |
Which operations to allow on temporary file. More... | |
typedef unsigned int | TCopyFlags |
Binary OR of "ECopyFlags". More... | |
typedef unsigned int | TRenameFlags |
Binary OR of "ERenameFlags". More... | |
typedef unsigned int | TProcessingFlags |
Binary OR of "EProcessingFlags". More... | |
typedef TProcessingFlags | TRemoveFlags |
Flags based on TProcessingFlags. More... | |
typedef TProcessingFlags | TSetModeFlags |
typedef TRemoveFlags | EDirRemoveMode |
Directory remove mode. More... | |
typedef int | TIfAbsent2 |
Binary OR of "EIfAbsent2". More... | |
typedef unsigned int | TMode |
Bitwise OR of "EMode". More... | |
typedef unsigned int | TSpecialModeBits |
Bitwise OR of ESpecialModeBits. More... | |
Public Member Functions | |
CFile (void) | |
Default constructor. More... | |
CFile (const string &file) | |
Constructor using specified path string. More... | |
CFile (const CDirEntry &file) | |
Copy constructor. More... | |
virtual | ~CFile (void) |
Destructor. More... | |
virtual EType | GetObjectType (void) const |
Get a type of constructed object. More... | |
virtual bool | Exists (void) const |
Check existence of file. More... | |
Int8 | GetLength (void) const |
Get size of file. More... | |
virtual bool | Copy (const string &new_path, TCopyFlags flags=fCF_Default, size_t buf_size=0) const |
Copy a file. More... | |
bool | Compare (const string &file, size_t buf_size=0) const |
Compare files contents in binary form. More... | |
bool | CompareTextContents (const string &file, ECompareText mode, size_t buf_size=0) const |
Compare files contents in text form. More... | |
Public Member Functions inherited from CDirEntry | |
CDirEntry (void) | |
Default constructor. More... | |
CDirEntry (const string &path) | |
Constructor using specified path string. More... | |
CDirEntry (const CDirEntry &other) | |
Copy constructor. More... | |
virtual | ~CDirEntry (void) |
Destructor. More... | |
const string & | GetPath (void) const |
Get entry path. More... | |
void | Reset (const string &path) |
Reset path string. More... | |
CDirEntry & | operator= (const CDirEntry &other) |
Assignment operator. More... | |
string | GetDir (EIfEmptyPath mode=eIfEmptyPath_Current) const |
Get the directory component for this directory entry. More... | |
string | GetName (void) const |
Get the base entry name with extension (if any). More... | |
string | GetBase (void) const |
Get the base entry name without extension. More... | |
string | GetExt (void) const |
Get extension name. More... | |
bool | CopyToDir (const string &dir, TCopyFlags flags=fCF_Default, size_t buf_size=0) const |
Copy the entry to a specified directory. More... | |
bool | Rename (const string &new_path, TRenameFlags flags=fRF_Default) |
Rename entry. More... | |
bool | MoveToDir (const string &dir, TCopyFlags flags=fRF_Default) |
Move the entry to a specified directory. More... | |
bool | Backup (const string &suffix=kEmptyStr, EBackupMode mode=eBackup_Default, TCopyFlags copyflags=fCF_Default, size_t copybufsize=0) |
Backup an entry. More... | |
virtual bool | Remove (TRemoveFlags flags=eRecursive) const |
Remove a directory entry. More... | |
virtual bool | RemoveEntry (TRemoveFlags flags=eEntryOnly) const |
Remove a directory entry. More... | |
bool | Stat (struct SStat *buffer, EFollowLinks follow_links=eIgnoreLinks) const |
Get status information on a dir entry. More... | |
EType | GetType (EFollowLinks follow=eIgnoreLinks) const |
Get a type of a directory entry. More... | |
bool | IsFile (EFollowLinks follow=eFollowLinks) const |
Check whether a directory entry is a file. More... | |
bool | IsDir (EFollowLinks follow=eFollowLinks) const |
Check whether a directory entry is a directory. More... | |
bool | IsLink (void) const |
Check whether a directory entry is a symbolic link (alias). More... | |
string | LookupLink (void) const |
Get an entry name that a link points to. More... | |
void | DereferenceLink (ENormalizePath normalize=eNormalizePath) |
Dereference a link. More... | |
void | DereferencePath (void) |
Dereference a path. More... | |
bool | GetTime (CTime *modification, CTime *last_access=0, CTime *creation=0) const |
Get time stamp(s) of a directory entry. More... | |
bool | GetTimeT (time_t *modification, time_t *last_access=0, time_t *creation=0) const |
Get time stamp(s) of a directory entry (time_t version). More... | |
bool | SetTime (const CTime *modification=0, const CTime *last_access=0, const CTime *creation=0) const |
Set time stamp(s) of a directory entry. More... | |
bool | SetTimeT (const time_t *modification=0, const time_t *last_access=0, const time_t *creation=0) const |
Set time stamp(s) of a directory entry (time_t version). More... | |
bool | IsNewer (time_t tm, EIfAbsent if_absent) const |
Check if the current entry is newer than a specified date/time. More... | |
bool | IsNewer (const CTime &tm, EIfAbsent if_absent) const |
Check if the current entry is newer than a specified date/time. More... | |
bool | IsNewer (const string &path, TIfAbsent2 if_absent) const |
Check if the current entry is newer than some other. More... | |
bool | IsIdentical (const string &entry_name, EFollowLinks follow_links=eIgnoreLinks) const |
Check if the current entry and the given entry_name are identical. More... | |
bool | GetOwner (string *owner, string *group=0, EFollowLinks follow=eFollowLinks, unsigned int *uid=0, unsigned int *gid=0) const |
Get an entry owner. More... | |
bool | SetOwner (const string &owner, const string &group=kEmptyStr, EFollowLinks follow=eFollowLinks, unsigned int *uid=0, unsigned int *gid=0) const |
Set an entry owner and/or group. More... | |
bool | GetMode (TMode *user_mode, TMode *group_mode=0, TMode *other_mode=0, TSpecialModeBits *special=0) const |
Get permission mode(s) of a directory entry. More... | |
virtual bool | SetMode (TMode user_mode, TMode group_mode=fDefault, TMode other_mode=fDefault, TSpecialModeBits special=0, TSetModeFlags flags=eEntryOnly) const |
Set permission mode(s) of a directory entry. More... | |
virtual bool | SetModeEntry (TMode user_mode, TMode group_mode=fDefault, TMode other_mode=fDefault, TSpecialModeBits special=0, TSetModeFlags flags=eEntryOnly) const |
Set permission mode(s) of a directory entry. More... | |
virtual void | SetDefaultMode (EType entry_type, TMode user_mode, TMode group_mode=fDefault, TMode other_mode=fDefault, TSpecialModeBits special=0) |
Set default mode(s) for this entry only. More... | |
bool | CheckAccess (TMode access_mode) const |
Check access rights. More... | |
Private Types | |
typedef CDirEntry | CParent |
CDirEntry is the parent class. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from CDirEntry | |
static void | SplitPath (const string &path, string *dir=0, string *base=0, string *ext=0) |
Split a path string into its basic components. More... | |
static void | SplitPathEx (const string &path, string *disk=0, string *dir=0, string *base=0, string *ext=0) |
Split a path string into its basic components. More... | |
static string | MakePath (const string &dir=kEmptyStr, const string &base=kEmptyStr, const string &ext=kEmptyStr) |
Assemble a path from basic components. More... | |
static char | GetPathSeparator (void) |
Get path separator symbol specific for the current platform. More... | |
static bool | IsPathSeparator (const char c) |
Check whether a character "c" is a path separator symbol specific for the current platform. More... | |
static string | AddTrailingPathSeparator (const string &path) |
Add trailing path separator, if needed. More... | |
static string | DeleteTrailingPathSeparator (const string &path) |
Delete trailing path separator, if any. More... | |
static string | ConvertToOSPath (const string &path) |
Convert "path" on any OS to the current OS-dependent path. More... | |
static bool | IsAbsolutePath (const string &path) |
Check if a "path" is absolute for the current OS. More... | |
static bool | IsAbsolutePathEx (const string &path) |
Check if the "path" is absolute for any OS. More... | |
static string | GetNearestExistingParentDir (const string &path) |
Given a path, gets the closest parent directory which actually exists. More... | |
static string | CreateRelativePath (const string &path_from, const string &path_to) |
Create a relative path between two points in the file system specified by their absolute paths. More... | |
static string | CreateAbsolutePath (const string &path, ERelativeToWhat rtw=eRelativeToCwd) |
Get an absolute path from some, possibly relative, path. More... | |
static string | CreateAbsolutePath (const string &path, const string &rtw) |
Get an absolute path from some, possibly relative, path. More... | |
static string | ConcatPath (const string &first, const string &second) |
Concatenate two parts of the path for the current OS. More... | |
static string | ConcatPathEx (const string &first, const string &second) |
Concatenate two parts of the path for any OS. More... | |
static string | NormalizePath (const string &path, EFollowLinks follow_links=eIgnoreLinks) |
Normalize a path. More... | |
static bool | MatchesMask (const string &name, const string &mask, NStr::ECase use_case=NStr::eCase) |
Match a "name" against a simple filename "mask". More... | |
static bool | MatchesMask (const string &name, const vector< string > &masks, NStr::ECase use_case=NStr::eCase) |
Match a "name" against a set of "masks" Note that any name match to empty vector of masks. More... | |
static bool | MatchesMask (const string &name, const CMask &mask, NStr::ECase use_case=NStr::eCase) |
Match a "name" against a set of "masks" Note that any name match to empty set of masks. More... | |
static const char * | GetBackupSuffix (void) |
Get backup suffix. More... | |
static void | SetBackupSuffix (const char *suffix) |
Set backup suffix. More... | |
static CDirEntry * | CreateObject (EType type, const string &path=kEmptyStr) |
Construct a directory entry object of a specified type. More... | |
static EType | GetType (const TNcbiSys_stat &st) |
Get a type of a directory entry by status information. More... | |
static void | SetDefaultModeGlobal (EType entry_type, TMode user_mode, TMode group_mode=fDefault, TMode other_mode=fDefault, TSpecialModeBits special=0) |
Set default permission modes globally for all CDirEntry objects. More... | |
static mode_t | MakeModeT (TMode user_mode, TMode group_mode, TMode other_mode, TSpecialModeBits special) |
Construct mode_t value from permission modes. More... | |
static void | ModeFromModeT (mode_t mode, TMode *user_mode, TMode *group_mode=0, TMode *other_mode=0, TSpecialModeBits *special=0) |
Convert mode_t to permission mode(s). More... | |
static string | ModeToString (TMode user_mode, TMode group_mode, TMode other_mode, TSpecialModeBits special, EModeStringFormat format=eModeFormat_Default) |
Convert permission modes to string representation using one of predefined formats. More... | |
static bool | StringToMode (const CTempString &mode, TMode *user_mode, TMode *group_mode=0, TMode *other_mode=0, TSpecialModeBits *special=0) |
Convert string (in one of predefined formats, detects automatically) to permission mode(s). More... | |
static void | GetUmask (TMode *user_mode, TMode *group_mode=0, TMode *other_mode=0, TSpecialModeBits *special=0) |
Get file/directory mode creation mask. More... | |
static void | SetUmask (TMode user_mode, TMode group_mode=fDefault, TMode other_mode=fDefault, TSpecialModeBits special=0) |
Set file/directory mode creation mask. More... | |
static string | GetTmpName (ETmpFileCreationMode mode=eTmpFileGetName) |
Get temporary file name. More... | |
static string | GetTmpNameEx (const string &dir=kEmptyStr, const string &prefix=kEmptyStr, ETmpFileCreationMode mode=eTmpFileGetName) |
Get temporary file name. More... | |
static fstream * | CreateTmpFile (const string &filename=kEmptyStr, ETextBinary text_binary=eBinary, EAllowRead allow_read=eAllowRead) |
Create temporary file and return pointer to corresponding stream. More... | |
static fstream * | CreateTmpFileEx (const string &dir=".", const string &prefix=kEmptyStr, ETextBinary text_binary=eBinary, EAllowRead allow_read=eAllowRead) |
Create temporary file and return pointer to corresponding stream. More... | |
Protected Member Functions inherited from CDirEntry | |
void | GetDefaultMode (TMode *user_mode, TMode *group_mode, TMode *other_mode, TSpecialModeBits *special) const |
Get the default mode. More... | |
mode_t | GetDefaultModeT (void) const |
Static Protected Member Functions inherited from CDirEntry | |
static void | GetDefaultModeGlobal (EType entry_type, TMode *user_mode, TMode *group_mode, TMode *other_mode, TSpecialModeBits *special) |
Get the default global mode. More... | |
CFile –.
Define class to work with regular files. NOTE: it don't work with any special or block devices like /dev/null
Models a file in a file system. Basic functionality is derived from CDirEntry and extended for files.
Definition at line 1604 of file ncbifile.hpp.