29#ifndef Pt_System_FileInfo_h
30#define Pt_System_FileInfo_h
32#include <Pt/System/Api.h>
33#include <Pt/System/Path.h>
34#include <Pt/DateTime.h>
189 {
return FileInfo::isLink(_path); }
199 static bool isLink(
const Path&
path);
267 return static_cast<FileInfo::Perms>(
static_cast<int>(a) |
static_cast<int>(b));
276 return static_cast<FileInfo::Perms>(
static_cast<int>(a) &
static_cast<int>(b));
285 return static_cast<FileInfo::Perms>(
static_cast<int>(a) ^
static_cast<int>(b));
Combined Date and Time value.
Definition DateTime.h:66
Unicode capable basic_string.
Definition Api-String.h:67
static void resize(const Path &path, Pt::uint64_t n)
Resizes a file.
static Perms permissions(const Path &path)
Returns the permissions of the file at the path.
FileInfo(const char *path)
Constructs from the path.
Pt::uint64_t size() const
Returns the file size.
Definition FileInfo.h:181
Type
File-node type.
Definition FileInfo.h:108
@ Directory
Directory.
Definition FileInfo.h:110
@ File
Regular file.
Definition FileInfo.h:111
@ Link
Symbolic link.
Definition FileInfo.h:112
@ Invalid
Invalid file type.
Definition FileInfo.h:109
FileInfo()
Default constructor.
Definition FileInfo.h:150
static DateTime lastModified(const Path &path)
Returns the time when last modified.
FileInfo(const Pt::String &path)
Constructs from the path.
FileInfo::Perms operator&(FileInfo::Perms a, FileInfo::Perms b)
Bitwise AND for FileInfo permission flags.
Definition FileInfo.h:274
static void createHardlink(const Path &target, const Path &link)
Creates a hard link at link pointing to target.
static void createDirectory(const Path &path)
Creates a new directory.
const Path & path() const
Returns the full path of node in the file-system.
Definition FileInfo.h:177
static Pt::uint64_t size(const Path &path)
Returns the size of the file in bytes.
bool operator!=(const FileInfo &a, const FileInfo &b)
Compare two FileInfo objects.
Definition FileInfo.h:349
Perms permissions() const
Returns the file permissions.
Definition FileInfo.h:192
static void createFile(const Path &path)
Creates a new file.
static Type type(const Path &path)
Returns the type of file at the path.
static void createDirectories(const Path &path)
Creates a new directory.
FileInfo::Perms operator^(FileInfo::Perms a, FileInfo::Perms b)
Bitwise XOR for FileInfo permission flags.
Definition FileInfo.h:283
FileInfo::Perms & operator&=(FileInfo::Perms &a, FileInfo::Perms b)
Bitwise AND assignment for FileInfo permission flags.
Definition FileInfo.h:311
static void createSymlink(const Path &target, const Path &link)
Creates a symbolic link at link pointing to target.
PermOptions
Options for modifying permissions.
Definition FileInfo.h:141
@ PermReplace
Replace permissions entirely.
Definition FileInfo.h:142
@ PermAdd
Add permission bits.
Definition FileInfo.h:143
@ PermNoFollow
Do not follow symbolic links.
Definition FileInfo.h:145
@ PermRemove
Remove permission bits.
Definition FileInfo.h:144
FileInfo::PermOptions operator|(FileInfo::PermOptions a, FileInfo::PermOptions b)
Bitwise OR for FileInfo permission options.
Definition FileInfo.h:321
FileInfo::Perms & operator|=(FileInfo::Perms &a, FileInfo::Perms b)
Bitwise OR assignment for FileInfo permission flags.
Definition FileInfo.h:301
static void permissions(const Path &path, Perms prms, PermOptions opts=PermReplace)
Sets the permissions of the file at the path.
FileInfo(const Path &path)
Constructs from the path.
FileInfo::Perms operator|(FileInfo::Perms a, FileInfo::Perms b)
Bitwise OR for FileInfo permission flags.
Definition FileInfo.h:265
bool operator<(const FileInfo &a, const FileInfo &b)
Compare two FileInfo objects.
Definition FileInfo.h:331
FileInfo::Perms operator~(FileInfo::Perms a)
Bitwise NOT for FileInfo permission flags.
Definition FileInfo.h:292
void clear()
Clears the state.
static void move(const Path &path, const Path &to)
Moves a file or directory.
static void removeAll(const Pt::System::Path &path)
Removes a directory and its contents.
Perms
File permission flags.
Definition FileInfo.h:117
@ SetUid
Set-user-ID on execute.
Definition FileInfo.h:132
@ OthersExec
Others execute permission.
Definition FileInfo.h:129
@ PermMask
All valid permission bits.
Definition FileInfo.h:135
@ OwnerExec
Owner execute permission.
Definition FileInfo.h:121
@ GroupRead
Group read permission.
Definition FileInfo.h:123
@ AllPerms
All basic permissions.
Definition FileInfo.h:131
@ GroupAll
All group permissions.
Definition FileInfo.h:126
@ OwnerAll
All owner permissions.
Definition FileInfo.h:122
@ OthersWrite
Others write permission.
Definition FileInfo.h:128
@ SetGid
Set-group-ID on execute.
Definition FileInfo.h:133
@ OwnerRead
Owner read permission.
Definition FileInfo.h:119
@ NoPerms
No permissions.
Definition FileInfo.h:118
@ UnknownPerms
Permissions not known.
Definition FileInfo.h:136
@ OwnerWrite
Owner write permission.
Definition FileInfo.h:120
@ GroupWrite
Group write permission.
Definition FileInfo.h:124
@ GroupExec
Group execute permission.
Definition FileInfo.h:125
@ StickyBit
Sticky bit.
Definition FileInfo.h:134
@ OthersRead
Others read permission.
Definition FileInfo.h:127
@ OthersAll
All others permissions.
Definition FileInfo.h:130
Type type() const
Returns the file type.
Definition FileInfo.h:185
~FileInfo()
Destructor.
Definition FileInfo.h:166
bool operator==(const FileInfo &a, const FileInfo &b)
Compare two FileInfo objects.
Definition FileInfo.h:340
static void remove(const Path &path)
Removes a file or directory.
static bool exists(const Path &path)
Returns true if a file or directory exists at the path.
Definition FileInfo.h:221
Represents a path in the file-system.
Definition Path.h:48
uint_type uint64_t
Unsigned 64-bit integer type.
Definition Api-Types.h:66
System programming
Definition Connection.h:26
Core module.
Definition Allocator.h:33