dtkio
dtk library for dtkio.
载入中...
搜索中...
未找到
dfileinfo.h
浏览该文件的文档.
1// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4
5#ifndef DFILEINFO_H
6#define DFILEINFO_H
7
8#include <QObject>
9#include <QUrl>
10#include <QVariant>
11#include <QScopedPointer>
12
13#include <DError>
14#include <DExpected>
15
16#include "dtkio_global.h"
17#include "dtkiotypes.h"
18
19DIO_BEGIN_NAMESPACE
20class DFileFuture;
21class DFileInfoPrivate;
22class DFileInfo : public QObject
23{
24public:
25 explicit DFileInfo(const QUrl &url, QObject *parent = nullptr);
26 DFileInfo(const DFileInfo &other);
27 DFileInfo(DFileInfo &&other) noexcept;
28 DFileInfo &operator=(DFileInfo &&other) noexcept;
30 virtual ~DFileInfo() override;
31
32 DTK_CORE_NAMESPACE::DExpected<QUrl> url() const;
33 void setQueryAttributes(const QByteArray &attributes);
35 DTK_CORE_NAMESPACE::DExpected<QByteArray> queryAttributes() const;
36 DTK_CORE_NAMESPACE::DExpected<FileQueryInfoFlags> queryInfoFlag() const;
37
38 DTK_CORE_NAMESPACE::DExpected<bool> initQuerier();
39 DTK_CORE_NAMESPACE::DExpected<QVariant> attribute(AttributeID id, bool *success = nullptr) const;
40 DTK_CORE_NAMESPACE::DExpected<QVariant> attribute(const QByteArray &key, const AttributeType type) const;
41 DTK_CORE_NAMESPACE::DExpected<bool> hasAttribute(AttributeID id) const;
42 DTK_CORE_NAMESPACE::DExpected<bool> hasAttribute(const QByteArray &key) const;
43 DTK_CORE_NAMESPACE::DExpected<bool> exists() const;
44 DTK_CORE_NAMESPACE::DExpected<bool> refresh();
45 DTK_CORE_NAMESPACE::DExpected<Permissions> permissions() const;
46
47 [[nodiscard]] DFileFuture *initQuerierAsync(int ioPriority, QObject *parent = nullptr);
48 [[nodiscard]] DFileFuture *attributeAsync(AttributeID id, int ioPriority, QObject *parent = nullptr) const;
49 [[nodiscard]] DFileFuture *attributeAsync(const QByteArray &key, const AttributeType type, int ioPriority, QObject *parent = nullptr) const;
50 [[nodiscard]] DFileFuture *existsAsync(int ioPriority, QObject *parent = nullptr) const;
51 [[nodiscard]] DFileFuture *refreshAsync(int ioPriority, QObject *parent = nullptr);
52 [[nodiscard]] DFileFuture *permissionsAsync(int ioPriority, QObject *parent = nullptr);
53
54 DTK_CORE_NAMESPACE::DError lastError() const;
55
56private:
57 QSharedDataPointer<DFileInfoPrivate> d;
58};
59DIO_END_NAMESPACE
60
61#endif // DFILEINFO_H
处理文件异步操作的结果
Definition dfilefuture.h:18
用以获取文件的信息
Definition dfileinfo.h:23
DFileFuture * permissionsAsync(int ioPriority, QObject *parent=nullptr)
异步的方式获取文件权限属性
DTK_CORE_NAMESPACE::DExpected< bool > hasAttribute(AttributeID id) const
查询是否含有某个id的属性
DFileFuture * attributeAsync(const QByteArray &key, const AttributeType type, int ioPriority, QObject *parent=nullptr) const
异步的方式获取文件属性
DTK_CORE_NAMESPACE::DExpected< bool > refresh()
重新根据查询属性来获取文件信息,应在queryAttributes发生变动后调用
DTK_CORE_NAMESPACE::DExpected< QByteArray > queryAttributes() const
获取已定义的查询属性
DTK_CORE_NAMESPACE::DExpected< bool > hasAttribute(const QByteArray &key) const
查询是否含有key对应的属性
DTK_CORE_NAMESPACE::DExpected< bool > initQuerier()
根据查询属性和标志对文件信息进行初始化
DTK_CORE_NAMESPACE::DError lastError() const
获取当前文件操作的错误码
void setQueryInfoFlags(const FileQueryInfoFlags flags)
设置查询文件信息时的标志
DTK_CORE_NAMESPACE::DExpected< bool > exists() const
文件信息是否存在
DFileInfo(const DFileInfo &other)
复制构造函数, 通过 other 构造一个新的 DFileInfo 对象
DFileInfo & operator=(const DFileInfo &other)
重载赋值操作,创建一个相同的对象
DTK_CORE_NAMESPACE::DExpected< FileQueryInfoFlags > queryInfoFlag() const
获取已定义的查询信息的标志
DFileInfo & operator=(DFileInfo &&other) noexcept
以右值引用的方式进行赋值操作
DFileFuture * attributeAsync(AttributeID id, int ioPriority, QObject *parent=nullptr) const
异步的方式获取文件属性
DTK_CORE_NAMESPACE::DExpected< QVariant > attribute(AttributeID id, bool *success=nullptr) const
根据输入的id获取文件对应的属性
DFileFuture * initQuerierAsync(int ioPriority, QObject *parent=nullptr)
异步的方式初始化查询
DFileFuture * existsAsync(int ioPriority, QObject *parent=nullptr) const
异步的方式查询文件是否存在
DTK_CORE_NAMESPACE::DExpected< QVariant > attribute(const QByteArray &key, const AttributeType type) const
根据输入的键值获取对应的文件属性
void setQueryAttributes(const QByteArray &attributes)
设置查询属性
DFileInfo(const QUrl &url, QObject *parent=nullptr)
构造函数,通过文件的 url 构造一个新的 DFileInfo 对象
DTK_CORE_NAMESPACE::DExpected< Permissions > permissions() const
获取当前文件的权限属性
DFileFuture * refreshAsync(int ioPriority, QObject *parent=nullptr)
异步的方式刷新文件信息
DFileInfo(DFileInfo &&other) noexcept
移动构造函数, 通过 other 构造一个新的 DFileInfo 对象
DTK_CORE_NAMESPACE::DExpected< QUrl > url() const
获取当前对象管理的文件的url字符串
FileQueryInfoFlags
查询文件信息的标志
Definition dtkiotypes.h:201
AttributeID
文件属性(ID)
Definition dtkiotypes.h:47
AttributeType
文件属性类型
Definition dtkiotypes.h:188