27 auto fs = getFileSystem(); \ 32 #define GET_FS_BOOL() \ 33 auto fs = getFileSystem(); \ 60 explicit operator bool()
const 73 return check(fs->fstat(handle, &stat));
90 int res = fs->fcontrol(handle, code, buffer, bufSize);
105 handle = fs->open(path.
c_str(), flags);
106 return check(handle);
119 handle = fs->fopen(stat, flags);
120 return check(handle);
133 int res = fs->close(handle);
144 int read(
void* data,
size_t size)
147 int res = fs->read(handle, data, size);
158 int write(
const void* data,
size_t size)
161 int res = fs->write(handle, data, size);
181 int res = fs->lseek(handle, offset, origin);
196 int res = fs->eof(handle);
208 int res = fs->tell(handle);
221 int res = fs->ftruncate(handle, new_size);
233 int res = fs->ftruncate(handle);
245 return check(fs->flush(handle));
256 return check(fs->setacl(handle, acl));
267 return check(fs->settime(handle, mtime));
278 return check(fs->setcompression(handle, compression));
288 int res = fs->fremove(handle);
304 return fs->getSize(handle);
318 return fs->readContent(handle, size, callback);
329 return fs->readContent(handle, callback);
bool eof()
determine if current file position is at end of file
Definition: File.h:190
ControlCode
See IFS::IFileSystem::fcontrol
Definition: Control.h:31
const char * c_str() const
Get a constant (un-modifiable) pointer to String content.
Definition: WString.h:641
int write(const void *data, size_t size)
write content to a file at current position and advance cursor
Definition: File.h:158
bool flush()
flush any buffered data to physical media
Definition: File.h:242
FsBase(IFileSystem *filesys)
Definition: FsBase.h:30
int seek(int offset, SeekOrigin origin)
change file read/write position
Definition: File.h:178
static constexpr OpenFlags Append
Definition: File.h:51
Delegate< int(const char *buffer, size_t size)> ReadContentCallback
Callback for readContent method.
Definition: Components/IFS/src/include/IFS/FileSystem.h:178
bool setacl(const ACL &acl)
Set access control information for file.
Definition: File.h:253
bool write(const String &s)
Definition: File.h:166
static constexpr OpenFlags ReadWrite
Definition: File.h:49
static constexpr OpenFlags ReadOnly
Definition: File.h:47
bool check(int res)
Check file operation result and note error code.
Definition: FsBase.h:65
Wraps up all file access methods.
Definition: File.h:41
int read(void *data, size_t size)
read content from a file and advance cursor
Definition: File.h:144
The String class.
Definition: WString.h:136
bool truncate()
Truncate an open file at the current cursor position.
Definition: File.h:230
bool close()
close an open file
Definition: File.h:127
uint32_t getSize()
Get size of file.
Definition: File.h:301
Definition: Delegate.h:20
char * begin()
Get a modifiable pointer to String content.
Definition: WString.h:650
SeekOrigin
Stream/file seek origins.
Definition: SeekOrigin.h:18
static constexpr OpenFlags WriteOnly
Definition: File.h:48
#define GET_FS_BOOL()
Definition: File.h:32
bool setcompression(const Compression &compression)
Set file compression information.
Definition: File.h:275
bool open(const Stat &stat, OpenFlags flags=OpenFlag::Read)
open a file from it's stat structure
Definition: File.h:115
int readContent(ReadContentCallback callback)
Read from current file position to end of file and invoke callback for each block read...
Definition: File.h:326
int16_t FileHandle
File handle.
Definition: Stat.h:39
Definition: DirectoryTemplate.h:36
size_t length(void) const
Obtain the String length in characters, excluding NUL terminator.
Definition: WString.h:237
~File()
Definition: File.h:55
bool setLength(size_t length)
set the string length accordingly, expanding if necessary
#define GET_FS()
Definition: File.h:26
bool stat(Stat &stat)
get file information
Definition: File.h:70
String getContent()
Read content of a file.
Definition: File.h:340
File Status structure.
Definition: Stat.h:51
Manage a set of bit values using enumeration.
Definition: BitSet.h:43
int32_t tell()
get current file position
Definition: File.h:205
bool settime(time_t mtime)
Set modification time for file.
Definition: File.h:264
bool truncate(size_t new_size)
Truncate (reduce) the size of an open file.
Definition: File.h:218
static constexpr OpenFlags CreateNewAlways
Definition: File.h:53
bool open(const String &path, OpenFlags flags=OpenFlag::Read)
open a file by name/path
Definition: File.h:101
int readContent(size_t size, ReadContentCallback callback)
Read from current file position and invoke callback for each block read.
Definition: File.h:315
int control(ControlCode code, void *buffer, size_t bufSize)
Low-level and non-standard file control operations.
Definition: File.h:87
FileSystem * getFileSystem() const
Definition: FsBase.h:52
constexpr ErrorCode FS_OK
Definition: Error.h:130
static constexpr OpenFlags Create
Definition: File.h:50
static constexpr OpenFlags Truncate
Definition: File.h:52
A compression descriptor.
Definition: Compression.h:38