53 explicit operator bool()
const 66 return check(fs->fstat(handle, &stat));
83 int res = fs->fcontrol(handle, code, buffer, bufSize);
94 template <
typename T>
bool open(
const T& path,
OpenFlags flags = OpenFlag::Read)
98 handle = fs->open(path, flags);
112 int res = fs->close(handle);
123 int read(
void* data,
size_t size)
126 int res = fs->read(handle, data, size);
137 int write(
const void* data,
size_t size)
140 int res = fs->write(handle, data, size);
160 auto res = fs->lseek(handle, offset, origin);
175 int res = fs->eof(handle);
187 auto res = fs->tell(handle);
200 int res = fs->ftruncate(handle, new_size);
211 int res = fs->ftruncate(handle);
222 return check(fs->flush(handle));
233 return check(fs->setacl(handle, acl));
244 return check(fs->settime(handle, mtime));
255 return check(fs->setcompression(handle, compression));
261 return check(fs->setAttribute(handle, tag, params...));
267 return check(fs->getAttribute(handle, tag, params...));
279 return check(fs->getUserAttribute(handle, tagValue, params...));
285 return fs->getUserAttribute(handle, tagValue);
291 return check(fs->removeUserAttribute(handle, tagValue));
297 int res = fs->fenumxattr(handle, callback, buffer, bufsize);
309 int res = fs->fremove(handle);
325 return fs->getSize(handle);
339 auto res = fs->readContent(handle, size, callback);
352 auto res = fs->readContent(handle, callback);
392 int res = fs->fgetextents(handle, part, list, extcount);
AttributeTag getUserAttributeTag(uint8_t value)
Definition: Attribute.h:85
bool eof()
determine if current file position is at end of file
Definition: File.h:169
int getUserAttribute(uint8_t tagValue, ParamTypes... params)
Definition: File.h:276
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:616
int write(const void *data, size_t size)
write content to a file at current position and advance cursor
Definition: File.h:137
bool flush()
flush any buffered data to physical media
Definition: File.h:219
bool open(const T &path, OpenFlags flags=OpenFlag::Read)
open a file by name/path
Definition: File.h:94
static constexpr OpenFlags Append
Append to existing file.
Definition: File.h:42
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:230
bool write(const String &s)
Definition: File.h:145
static constexpr OpenFlags ReadWrite
Read + Write.
Definition: File.h:40
static constexpr OpenFlags ReadOnly
Read-only.
Definition: File.h:38
Wraps up all file access methods.
Definition: File.h:29
uint32_t file_size_t
Definition: Components/IFS/src/include/IFS/Types.h:50
int read(void *data, size_t size)
read content from a file and advance cursor
Definition: File.h:123
FileHandle release()
Return current file handle and release ownership.
Definition: File.h:382
The String class.
Definition: WString.h:136
int getExtents(Storage::Partition *part, Extent *list, uint16_t extcount)
Definition: File.h:389
bool truncate()
Truncate an open file at the current cursor position.
Definition: File.h:208
bool close()
close an open file
Definition: File.h:106
bool truncate(file_size_t new_size)
Truncate (reduce) the size of an open file.
Definition: File.h:197
Definition: Delegate.h:20
char * begin()
Get a modifiable pointer to String content.
Definition: WString.h:625
SeekOrigin
Stream/file seek origins.
Definition: SeekOrigin.h:18
static constexpr OpenFlags WriteOnly
Write-only.
Definition: File.h:39
bool setcompression(const Compression &compression)
Set file compression information.
Definition: File.h:252
file_offset_t readContent(ReadContentCallback callback)
Read from current file position to end of file and invoke callback for each block read...
Definition: File.h:349
int16_t FileHandle
File handle.
Definition: Stat.h:40
Definition: DirectoryTemplate.h:36
size_t length(void) const
Obtain the String length in characters, excluding NUL terminator.
Definition: WString.h:243
~File()
Definition: File.h:48
bool setLength(size_t length)
set the string length accordingly, expanding if necessary
bool stat(Stat &stat)
get file information
Definition: File.h:63
#define GET_FS(failure)
Definition: FsBase.h:27
FsBase(IFileSystem *filesys=nullptr)
Definition: FsBase.h:36
bool removeUserAttribute(uint8_t tagValue)
Definition: File.h:288
String getContent()
Read content of the file, from current position.
Definition: File.h:364
bool check(int64_t res)
Check file operation result and note error code.
Definition: FsBase.h:83
File Status structure.
Definition: Stat.h:52
Manage a set of bit values using enumeration.
Definition: BitSet.h:44
bool settime(time_t mtime)
Set modification time for file.
Definition: File.h:241
String getUserAttribute(uint8_t tagValue)
Definition: File.h:282
int getAttribute(AttributeTag tag, ParamTypes... params)
Definition: File.h:264
Represents a flash partition.
Definition: Partition.h:85
AttributeTag
Identifies a specific attribute.
Definition: Attribute.h:45
file_size_t getSize()
Get size of file.
Definition: File.h:322
int enumAttributes(AttributeEnumCallback callback, void *buffer, size_t bufsize)
Definition: File.h:294
file_offset_t readContent(size_t size, ReadContentCallback callback)
Read from current file position and invoke callback for each block read.
Definition: File.h:336
int32_t file_offset_t
Definition: Components/IFS/src/include/IFS/Types.h:51
Defines the location of a contiguous run of file data.
Definition: Extent.h:40
static constexpr OpenFlags CreateNewAlways
Create new file or overwrite file if it exists.
Definition: File.h:44
bool setAttribute(AttributeTag tag, ParamTypes... params)
Definition: File.h:258
file_offset_t tell()
get current file position
Definition: File.h:184
int control(ControlCode code, void *buffer, size_t bufSize)
Low-level and non-standard file control operations.
Definition: File.h:80
FileSystem * getFileSystem() const
Definition: FsBase.h:63
constexpr ErrorCode FS_OK
Definition: Components/IFS/src/include/IFS/Error.h:130
int lastError
Definition: FsBase.h:94
static constexpr OpenFlags Create
Create file if it doesn't exist.
Definition: File.h:41
bool setUserAttribute(uint8_t tagValue, ParamTypes... params)
Definition: File.h:270
static constexpr OpenFlags Truncate
Truncate existing file to zero length.
Definition: File.h:43
file_offset_t seek(file_offset_t offset, SeekOrigin origin)
change file read/write position
Definition: File.h:157
A compression descriptor.
Definition: Compression.h:38