Go to the documentation of this file.
53 explicit operator bool()
const
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));
230 bool setacl(
const ACL& acl)
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);
Represents a flash partition.
Definition: Partition.h:85
bool eof()
determine if current file position is at end of file
Definition: File.h:203
bool flush()
flush any buffered data to physical media
Definition: File.h:253
bool open(const T &path, OpenFlags flags=OpenFlag::Read)
open a file by name/path
Definition: File.h:128
static constexpr OpenFlags Truncate
Truncate existing file to zero length.
Definition: File.h:77
bool setacl(const ACL &acl)
Set access control information for file.
Definition: File.h:264
int getExtents(Storage::Partition *part, Extent *list, uint16_t extcount)
Definition: File.h:423
Wraps up all file access methods.
Definition: File.h:46
int write(const void *data, size_t size)
write content to a file at current position and advance cursor
Definition: File.h:171
static constexpr OpenFlags ReadWrite
Read + Write.
Definition: File.h:74
char * begin()
Get a modifiable pointer to String content.
Definition: WString.h:625
The String class.
Definition: WString.h:136
FileSystem * getFileSystem() const
Definition: FsBase.h:81
int getUserAttribute(uint8_t tagValue, ParamTypes... params)
Definition: File.h:310
constexpr ErrorCode FS_OK
Definition: Components/IFS/src/include/IFS/Error.h:130
static constexpr OpenFlags WriteOnly
Write-only.
Definition: File.h:73
Defines the location of a contiguous run of file data.
Definition: Extent.h:57
bool setcompression(const Compression &compression)
Set file compression information.
Definition: File.h:286
bool check(int64_t res)
Check file operation result and note error code.
Definition: FsBase.h:101
bool setLength(size_t length)
set the string length accordingly, expanding if necessary
static constexpr OpenFlags Append
Append to existing file.
Definition: File.h:76
BitSet< uint8_t, OpenFlag, size_t(OpenFlag::MAX)> OpenFlags
Definition: OpenFlags.h:69
bool truncate()
Truncate an open file at the current cursor position.
Definition: File.h:242
bool close()
close an open file
Definition: File.h:140
AttributeTag getUserAttributeTag(uint8_t value)
Definition: Attribute.h:104
int16_t FileHandle
File handle.
Definition: Stat.h:59
Definition: DirectoryTemplate.h:36
static constexpr OpenFlags ReadOnly
Read-only.
Definition: File.h:72
ControlCode
See IFS::IFileSystem::fcontrol
Definition: Components/IFS/src/include/IFS/Control.h:48
int read(void *data, size_t size)
read content from a file and advance cursor
Definition: File.h:157
FileHandle release()
Return current file handle and release ownership.
Definition: File.h:416
Delegate< int(const char *buffer, size_t size)> ReadContentCallback
Callback for readContent method.
Definition: Components/IFS/src/include/IFS/FileSystem.h:305
int32_t file_offset_t
Definition: Components/IFS/src/include/IFS/Types.h:51
bool stat(Stat &stat)
get file information
Definition: File.h:97
Manage a set of bit values using enumeration.
Definition: BitSet.h:44
FileSystem::ReadContentCallback ReadContentCallback
Definition: File.h:362
String getContent()
Read content of the file, from current position.
Definition: File.h:398
int getAttribute(AttributeTag tag, ParamTypes... params)
Definition: File.h:298
const char * c_str() const
Get a constant (un-modifiable) pointer to String content.
Definition: WString.h:616
int lastError
Definition: FsBase.h:112
#define GET_FS(failure)
Definition: FsBase.h:45
int enumAttributes(AttributeEnumCallback callback, void *buffer, size_t bufsize)
Definition: File.h:328
~File()
Definition: File.h:82
file_offset_t tell()
get current file position
Definition: File.h:218
AttributeTag
Identifies a specific attribute.
Definition: Attribute.h:64
file_size_t getSize()
Get size of file.
Definition: File.h:356
FsBase(IFileSystem *filesys=nullptr)
Definition: FsBase.h:54
IFS::FileHandle FileHandle
Definition: Core/FileSystem.h:24
bool removeUserAttribute(uint8_t tagValue)
Definition: File.h:322
SeekOrigin
Stream/file seek origins.
Definition: SeekOrigin.h:18
A compression descriptor.
Definition: Compression.h:57
bool settime(time_t mtime)
Set modification time for file.
Definition: File.h:275
bool setUserAttribute(uint8_t tagValue, ParamTypes... params)
Definition: File.h:304
bool setAttribute(AttributeTag tag, ParamTypes... params)
Definition: File.h:292
static constexpr OpenFlags Create
Create file if it doesn't exist.
Definition: File.h:75
file_offset_t seek(file_offset_t offset, SeekOrigin origin)
change file read/write position
Definition: File.h:191
Definition: Delegate.h:20
bool remove()
remove (delete) an open file (and close it)
Definition: File.h:340
int control(ControlCode code, void *buffer, size_t bufSize)
Low-level and non-standard file control operations.
Definition: File.h:114
size_t length(void) const
Obtain the String length in characters, excluding NUL terminator.
Definition: WString.h:243
file_offset_t readContent(size_t size, ReadContentCallback callback)
Read from current file position and invoke callback for each block read.
Definition: File.h:370
uint32_t file_size_t
Definition: Components/IFS/src/include/IFS/Types.h:50
static constexpr OpenFlags CreateNewAlways
Create new file or overwrite file if it exists.
Definition: File.h:78