dtkio
dtk library for dtkio.
载入中...
搜索中...
未找到
dfileoperator.h
浏览该文件的文档.
1// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4
5#ifndef DFILEOPERATOR_H
6#define DFILEOPERATOR_H
7
8#include <QUrl>
9#include <QScopedPointer>
10
11#include <DError>
12#include <DExpected>
13
14#include "dtkio_global.h"
15#include "dtkiotypes.h"
16
17DIO_BEGIN_NAMESPACE
18class DFileFuture;
19class DFileOperatorPrivate;
21{
22public:
23 explicit DFileOperator(const QUrl &url);
25
26 DTK_CORE_NAMESPACE::DExpected<QUrl> url() const;
27 DTK_CORE_NAMESPACE::DExpected<bool> renameFile(const QString &newName);
28 DTK_CORE_NAMESPACE::DExpected<bool> copyFile(const QUrl &destUrl, CopyFlag flag);
29 DTK_CORE_NAMESPACE::DExpected<bool> moveFile(const QUrl &destUrl, CopyFlag flag);
30 DTK_CORE_NAMESPACE::DExpected<bool> trashFile();
31 DTK_CORE_NAMESPACE::DExpected<bool> deleteFile();
32 DTK_CORE_NAMESPACE::DExpected<bool> touchFile();
33 DTK_CORE_NAMESPACE::DExpected<bool> makeDirectory();
34 DTK_CORE_NAMESPACE::DExpected<bool> createLink(const QUrl &link);
35 DTK_CORE_NAMESPACE::DExpected<bool> restoreFile();
36
37 DTK_CORE_NAMESPACE::DError lastError() const;
38
39 [[nodiscard]] DFileFuture *renameFileAsync(const QString &newName, int ioPriority, QObject *parent = nullptr);
40 [[nodiscard]] DFileFuture *copyFileAsync(const QUrl &destUrl, CopyFlag flag, int ioPriority, QObject *parent = nullptr);
41 [[nodiscard]] DFileFuture *moveFileAsync(const QUrl &destUrl, CopyFlag flag, int ioPriority, QObject *parent = nullptr);
42 [[nodiscard]] DFileFuture *trashFileAsync(int ioPriority, QObject *parent = nullptr);
43 [[nodiscard]] DFileFuture *deleteFileAsync(int ioPriority, QObject *parent = nullptr);
44 [[nodiscard]] DFileFuture *restoreFileAsync(int ioPriority, QObject *parent = nullptr);
45 [[nodiscard]] DFileFuture *touchFileAsync(int ioPriority, QObject *parent = nullptr);
46 [[nodiscard]] DFileFuture *makeDirectoryAsync(int ioPriority, QObject *parent = nullptr);
47 [[nodiscard]] DFileFuture *createLinkAsync(const QUrl &link, int ioPriority, QObject *parent = nullptr);
48
49private:
50 QScopedPointer<DFileOperatorPrivate> d;
51};
52DIO_END_NAMESPACE
53
54#endif // DFILEOPERATOR_H
处理文件异步操作的结果
Definition dfilefuture.h:18
用来对文件进行操作的类,封装了一系列文件有关的操作
Definition dfileoperator.h:21
DTK_CORE_NAMESPACE::DExpected< bool > copyFile(const QUrl &destUrl, CopyFlag flag)
拷贝文件
DFileFuture * trashFileAsync(int ioPriority, QObject *parent=nullptr)
以异步的方式删除文件到回收站
DFileOperator(const QUrl &url)
构造函数, 通过 url 构造一个新的 DFileOperator 对象
DTK_CORE_NAMESPACE::DExpected< bool > moveFile(const QUrl &destUrl, CopyFlag flag)
移动文件
DTK_CORE_NAMESPACE::DExpected< bool > trashFile()
删除文件到回收站
DFileFuture * touchFileAsync(int ioPriority, QObject *parent=nullptr)
以异步的方式新建文件
DTK_CORE_NAMESPACE::DExpected< bool > restoreFile()
恢复文件
DTK_CORE_NAMESPACE::DError lastError() const
获取当前文件操作的错误码
DTK_CORE_NAMESPACE::DExpected< bool > makeDirectory()
新建目录
DTK_CORE_NAMESPACE::DExpected< bool > createLink(const QUrl &link)
为文件创建一个链接
DFileFuture * deleteFileAsync(int ioPriority, QObject *parent=nullptr)
以异步的方式彻底删除文件
DFileFuture * renameFileAsync(const QString &newName, int ioPriority, QObject *parent=nullptr)
以异步的方式重命名文件
DTK_CORE_NAMESPACE::DExpected< bool > touchFile()
新建文件
DFileFuture * createLinkAsync(const QUrl &link, int ioPriority, QObject *parent=nullptr)
以异步的方式为文件创建链接
DTK_CORE_NAMESPACE::DExpected< QUrl > url() const
获取当前文件的url
DTK_CORE_NAMESPACE::DExpected< bool > renameFile(const QString &newName)
重命名文件
DFileFuture * copyFileAsync(const QUrl &destUrl, CopyFlag flag, int ioPriority, QObject *parent=nullptr)
以异步的方式拷贝文件
DFileFuture * moveFileAsync(const QUrl &destUrl, CopyFlag flag, int ioPriority, QObject *parent=nullptr)
以异步的方式移动文件
DFileFuture * makeDirectoryAsync(int ioPriority, QObject *parent=nullptr)
以异步的方式新建目录
DTK_CORE_NAMESPACE::DExpected< bool > deleteFile()
彻底删除文件
DFileFuture * restoreFileAsync(int ioPriority, QObject *parent=nullptr)
以异步的方式恢复文件
CopyFlag
复制文件时的标志
Definition dtkiotypes.h:35