10#include <QScopedPointer>
24 explicit DFile(
const QUrl &url);
27 DTK_CORE_NAMESPACE::DExpected<QUrl>
url()
const;
28 DTK_CORE_NAMESPACE::DExpected<bool>
open(OpenFlags mode);
29 DTK_CORE_NAMESPACE::DExpected<bool>
close();
32 DTK_CORE_NAMESPACE::DExpected<size_t>
read(QByteArray *data,
size_t maxSize);
33 DTK_CORE_NAMESPACE::DExpected<QByteArray>
readAll();
34 DTK_CORE_NAMESPACE::DExpected<size_t>
write(
const QByteArray &data,
size_t len);
35 DTK_CORE_NAMESPACE::DExpected<size_t>
write(
const QByteArray &data);
37 DTK_CORE_NAMESPACE::DExpected<bool>
seek(ssize_t pos,
SeekType type = SeekType::Begin)
const;
38 DTK_CORE_NAMESPACE::DExpected<ssize_t>
pos()
const;
39 DTK_CORE_NAMESPACE::DExpected<bool>
flush();
40 DTK_CORE_NAMESPACE::DExpected<size_t>
size()
const;
43 DTK_CORE_NAMESPACE::DExpected<Permissions>
permissions()
const;
52 [[nodiscard]]
DFileFuture *
writeAsync(
const QByteArray &data,
size_t len,
int ioPriority, QObject *parent =
nullptr);
63 QScopedPointer<DFilePrivate> d;
处理文件异步操作的结果
Definition dfilefuture.h:18
用以管理文件的类,对文件进行打开、关闭、写入等操作,以及获取其状态等
Definition dfile.h:22
DFileFuture * writeAsync(const QByteArray &data, int ioPriority, QObject *parent=nullptr)
以异步的方式写入文件数据
DFileFuture * writeAsync(const QByteArray &data, size_t len, int ioPriority, QObject *parent=nullptr)
以异步的方式写入文件数据
DTK_CORE_NAMESPACE::DExpected< bool > setAttribute(AttributeID id, const QVariant &value)
设置文件属性
DFileFuture * closeAsync(int ioPriority, QObject *parent=nullptr)
以异步的方式关闭文件
DFileFuture * readAsync(size_t maxSize, int ioPriority, QObject *parent=nullptr)
以异步的方式读取文件数据
DTK_CORE_NAMESPACE::DExpected< QUrl > url() const
返回构造当前文件的url参数
DTK_CORE_NAMESPACE::DExpected< bool > flush()
刷新文件当前输出流,并强制写出缓冲的输出字节
bool exists() const
查看文件是否存在
DTK_CORE_NAMESPACE::DExpected< bool > close()
关闭文件,同时清理掉DFile对象中的输入输出流信息
DFileFuture * openAsync(OpenFlags mode, int ioPriority, QObject *parent=nullptr)
以异步的方式打开文件
DFileFuture * readAllAsync(int ioPriority, QObject *parent=nullptr)
以异步的方式读取文件数据
DTK_CORE_NAMESPACE::DExpected< bool > open(OpenFlags mode)
以指定模式来打开目标文件
DTK_CORE_NAMESPACE::DExpected< size_t > size() const
获取文件的大小
DFileFuture * existsAsync(int ioPriority, QObject *parent=nullptr)
以异步的方式获取文件是否存在
DTK_CORE_NAMESPACE::DExpected< size_t > write(const QByteArray &data, size_t len)
向文件中写入指定长度的数据
DTK_CORE_NAMESPACE::DExpected< size_t > read(QByteArray *data, size_t maxSize)
从文件中读取数据
DTK_CORE_NAMESPACE::DExpected< QByteArray > readAll()
将文件中数据全部读出
DTK_CORE_NAMESPACE::DExpected< bool > setPermissions(Permissions permission)
设置文件的权限状态
DTK_CORE_NAMESPACE::DExpected< size_t > write(const QByteArray &data)
向文件中写入数据
DTK_CORE_NAMESPACE::DExpected< ssize_t > pos() const
获取文件当前位置的偏移量
DTK_CORE_NAMESPACE::DError lastError() const
获取当前文件操作的错误码
DTK_CORE_NAMESPACE::DExpected< Permissions > permissions() const
获取文件的权限状态
DFileFuture * flushAsync(int ioPriority, QObject *parent=nullptr)
以异步的方式刷新文件输出流并强制输出
DTK_CORE_NAMESPACE::DExpected< bool > setAttribute(const QByteArray &key, const QVariant &value, const AttributeType type, const FileQueryInfoFlags flag=FileQueryInfoFlags::TypeNoFollowSymlinks)
设置文件属性
DFile(const QUrl &url)
构造函数, 通过 传入的url字符串 创建一个Dfile对象管理该url指向的文件
DFileFuture * permissionsAsync(int ioPriority, QObject *parent=nullptr)
以异步的方式获取文件的权限属性
DFileFuture * sizeAsync(int ioPriority, QObject *parent=nullptr)
以异步的方式获取文件的大小
bool isOpen() const
返回文件是否打开
DFileFuture * setPermissionsAsync(Permissions permission, int ioPriority, QObject *parent=nullptr)
以异步的方式设置文件的权限属性
DTK_CORE_NAMESPACE::DExpected< bool > seek(ssize_t pos, SeekType type=SeekType::Begin) const
设置文件当前的位置
FileQueryInfoFlags
查询文件信息的标志
Definition dtkiotypes.h:201
SeekType
文件偏移类型
Definition dtkiotypes.h:161
AttributeID
文件属性(ID)
Definition dtkiotypes.h:47
AttributeType
文件属性类型
Definition dtkiotypes.h:188