48 explicit operator bool()
const 61 return check(fs->fstat(handle, &stat));
78 int res = fs->fcontrol(handle, code, buffer, bufSize);
89 template <
typename T>
bool open(
const T& path,
OpenFlags flags = OpenFlag::Read)
93 handle = fs->open(path, flags);
107 int res = fs->close(handle);
118 int read(
void* data,
size_t size)
121 int res = fs->read(handle, data, size);
132 int write(
const void* data,
size_t size)
135 int res = fs->write(handle, data, size);
155 int res = fs->lseek(handle, offset, origin);
170 int res = fs->eof(handle);
182 int res = fs->tell(handle);
195 int res = fs->ftruncate(handle, new_size);
206 int res = fs->ftruncate(handle);
217 return check(fs->flush(handle));
228 return check(fs->setacl(handle, acl));
239 return check(fs->settime(handle, mtime));
250 return check(fs->setcompression(handle, compression));
256 return check(fs->setAttribute(handle, tag, params...));
262 return check(fs->getAttribute(handle, tag, params...));
265 template <
typename... ParamTypes>
bool setUserAttribute(uint8_t tagValue, ParamTypes... params)
271 template <
typename... ParamTypes>
int getUserAttribute(uint8_t tagValue, ParamTypes... params)
274 return check(fs->getUserAttribute(handle, tagValue, params...));
280 return fs->getUserAttribute(handle, tagValue);
286 return check(fs->removeUserAttribute(handle, tagValue));
292 int res = fs->fenumxattr(handle, callback, buffer, bufsize);
304 int res = fs->fremove(handle);
320 return fs->getSize(handle);
334 int res = fs->readContent(handle, size, callback);
347 int res = fs->readContent(handle, callback);
AttributeTag getUserAttributeTag(uint8_t value)
Definition: Attribute.h:85
bool eof()
determine if current file position is at end of file
Definition: File.h:164
int getUserAttribute(uint8_t tagValue, ParamTypes... params)
Definition: File.h:271
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:132
bool flush()
flush any buffered data to physical media
Definition: File.h:214
FsBase(IFileSystem *filesys)
Definition: FsBase.h:36
int seek(int offset, SeekOrigin origin)
change file read/write position
Definition: File.h:152
bool open(const T &path, OpenFlags flags=OpenFlag::Read)
open a file by name/path
Definition: File.h:89
static constexpr OpenFlags Append
Definition: File.h:39
Delegate< int(const char *buffer, size_t size)> ReadContentCallback
Callback for readContent method.
Definition: Components/IFS/src/include/IFS/FileSystem.h:305
bool setacl(const ACL &acl)
Set access control information for file.
Definition: File.h:225
bool write(const String &s)
Definition: File.h:140
static constexpr OpenFlags ReadWrite
Definition: File.h:37
static constexpr OpenFlags ReadOnly
Definition: File.h:35
bool check(int res)
Check file operation result and note error code.
Definition: FsBase.h:76
Wraps up all file access methods.
Definition: File.h:29
int read(void *data, size_t size)
read content from a file and advance cursor
Definition: File.h:118
The String class.
Definition: WString.h:136
bool truncate()
Truncate an open file at the current cursor position.
Definition: File.h:203
bool close()
close an open file
Definition: File.h:101
uint32_t getSize()
Get size of file.
Definition: File.h:317
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:36
bool setcompression(const Compression &compression)
Set file compression information.
Definition: File.h:247
int readContent(ReadContentCallback callback)
Read from current file position to end of file and invoke callback for each block read...
Definition: File.h:344
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:43
bool setLength(size_t length)
set the string length accordingly, expanding if necessary
bool stat(Stat &stat)
get file information
Definition: File.h:58
#define GET_FS(failure)
Definition: FsBase.h:27
bool removeUserAttribute(uint8_t tagValue)
Definition: File.h:283
String getContent()
Read content of a file.
Definition: File.h:360
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:179
bool settime(time_t mtime)
Set modification time for file.
Definition: File.h:236
String getUserAttribute(uint8_t tagValue)
Definition: File.h:277
int getAttribute(AttributeTag tag, ParamTypes... params)
Definition: File.h:259
AttributeTag
Identifies a specific attribute.
Definition: Attribute.h:45
int enumAttributes(AttributeEnumCallback callback, void *buffer, size_t bufsize)
Definition: File.h:289
bool truncate(size_t new_size)
Truncate (reduce) the size of an open file.
Definition: File.h:192
static constexpr OpenFlags CreateNewAlways
Definition: File.h:41
bool setAttribute(AttributeTag tag, ParamTypes... params)
Definition: File.h:253
int readContent(size_t size, ReadContentCallback callback)
Read from current file position and invoke callback for each block read.
Definition: File.h:331
int control(ControlCode code, void *buffer, size_t bufSize)
Low-level and non-standard file control operations.
Definition: File.h:75
FileSystem * getFileSystem() const
Definition: FsBase.h:63
constexpr ErrorCode FS_OK
Definition: Error.h:128
int lastError
Definition: FsBase.h:87
static constexpr OpenFlags Create
Definition: File.h:38
bool setUserAttribute(uint8_t tagValue, ParamTypes... params)
Definition: File.h:265
static constexpr OpenFlags Truncate
Definition: File.h:40