对于文件操作的安全封装, 提供了带有安全管控的文件读取, 相关漏洞见CWE_22
更多...
|
| DCapFile (QObject *parent=nullptr) |
|
| DCapFile (const QString &name, QObject *parent=nullptr) |
| 重载的构造函数, 接受传入一个文件名, 并创建一个文件对象
|
|
void | setFileName (const QString &name) |
| 传入需要操作的文件名
|
|
bool | exists () const |
| 文件是否存在
|
|
QString | symLinkTarget () const |
| 这是一个重载函数
返回符号链接, 或Windows上的快捷方式指向的文件或目录的绝对路径, 如果该对象不是符号链接, 则返回一个空字符串。
|
|
bool | remove () |
| 如果文件存在则删除文件
|
|
bool | moveToTrash () |
| 如果文件存在则将文件移动至默认回收站(垃圾桶)
|
|
bool | rename (const QString &newName) |
| 如果文件名存在则重命名文件
|
|
bool | link (const QString &newName) |
| 创建一个名为newName的链接
|
|
bool | copy (const QString &newName) |
| setFileName() 指定的文件或者是在构造时指定的文件复制一份, 名为newName
如果成功, 则返回ture;否则返回false
|
|
bool | open (OpenMode flags) override |
| 使用OpenMode模式打开文件, 如果成功返回true;否则返回false
|
|
bool | resize (qint64 sz) override |
| 设置文件大小sz(以字节为单位)。如果调整大小成功, 则返回true;否则为false。如果sz大于当前文件, 则新字节将设置为 0;如果sz较小, 则文件将被简单地截断
|
|
|
static bool | exists (const QString &fileName) |
| 文件是否存在
|
|
static bool | remove (const QString &fileName) |
| 如果文件存在则删除文件
|
|
static bool | moveToTrash (const QString &fileName, QString *pathInTrash=nullptr) |
| 如果传入文件名对应文件存在则将文件移动至指定回收站(垃圾桶)
|
|
static bool | rename (const QString &oldName, const QString &newName) |
| 如果文件名存在则重命名文件
|
|
static bool | link (const QString &oldname, const QString &newName) |
| 该函数是重载DCapFile::link() 区别是需要手动传入原始文件名
|
|
static bool | copy (const QString &fileName, const QString &newName) |
| 该函数是重载DCapFile::copy(const QString &newName) 区别是需要手动传入原始文件名
|
|
static bool | resize (const QString &filename, qint64 sz) |
| 该函数是重载DCapFile::resize(qint64 sz) 区别是手动指定文件名
|
|
对于文件操作的安全封装, 提供了带有安全管控的文件读取, 相关漏洞见CWE_22
对于文件夹操作的封装
◆ DCapFile()
Dtk::Core::DCapFile::DCapFile |
( |
const QString & |
name, |
|
|
QObject * |
parent = nullptr |
|
) |
| |
◆ copy() [1/2]
static bool Dtk::Core::DCapFile::copy |
( |
const QString & |
fileName, |
|
|
const QString & |
newName |
|
) |
| |
|
static |
◆ copy() [2/2]
bool Dtk::Core::DCapFile::copy |
( |
const QString & |
newName | ) |
|
setFileName()
指定的文件或者是在构造时指定的文件复制一份, 名为newName
如果成功, 则返回ture;否则返回false
- 注解
- 确保文件在复制之前是关闭的
-
如果复制的文件是一个符号链接(symlink), 它所指的文件被复制, 而不是链接本身。除了权限 会被复制外, 其他的文件元数据都不会被复制。
-
如果一个名称为 newName 的文件已经存在,
copy()
将会返回true但是并不会覆盖它
◆ exists() [1/2]
bool Dtk::Core::DCapFile::exists |
( |
| ) |
const |
文件是否存在
- 注解
- 此处的存在指当前由setFileName() 指定的文件或者是在构造时指定的文件是否可读可写
-
需要在构造时或者手动指定了文件名才可以使用此函数, 否则请调用其重载的函数
◆ exists() [2/2]
static bool Dtk::Core::DCapFile::exists |
( |
const QString & |
fileName | ) |
|
|
static |
文件是否存在
- 参数
-
- 注解
- 此处的存在指的是此函数的传入的文件名指向的文件是否可读可写
◆ link() [1/2]
bool Dtk::Core::DCapFile::link |
( |
const QString & |
newName | ) |
|
创建一个名为newName的链接
该链接指向当前由setFileName()
指定的文件或者是在构造时指定的文件。链接是什么取决于底层文件系统(无论是Windows上的快捷方式还是Unix上的符号链接)。如果成功, 则返回ture;否则返回false
- 注解
- 如果是windows系统的newName参数必须有<tt>.lnk合法后缀才可用
- 参数
-
◆ link() [2/2]
static bool Dtk::Core::DCapFile::link |
( |
const QString & |
oldname, |
|
|
const QString & |
newName |
|
) |
| |
|
static |
◆ moveToTrash() [1/2]
bool Dtk::Core::DCapFile::moveToTrash |
( |
| ) |
|
如果文件存在则将文件移动至默认回收站(垃圾桶)
- 注解
- 此处的存在指当前由setFileName() 指定的文件或者是在构造时指定的文件是否可读可写
-
需要在构造时或者手动指定了文件名才可以使用此函数, 否则请调用其重载的函数
-
此方法仅在Qt版本>=5.15.0后可用
◆ moveToTrash() [2/2]
bool Dtk::Core::DCapFile::moveToTrash |
( |
const QString & |
fileName, |
|
|
QString * |
pathInTrash = nullptr |
|
) |
| |
|
static |
如果传入文件名对应文件存在则将文件移动至指定回收站(垃圾桶)
- 注解
- 此处的存在指的是此函数的传入的文件名指向的文件是否可读可写
-
此方法仅在Qt版本>=5.15.0后可用
- 参数
-
[in] | fileName | 文件名 |
[in] | pathInTrash | 回收站路径 |
◆ open()
bool Dtk::Core::DCapFile::open |
( |
OpenMode |
flags | ) |
|
|
override |
使用OpenMode模式打开文件, 如果成功返回true;否则返回false
模式如下:
NotOpen = 0x0000,
ReadOnly = 0x0001,
WriteOnly = 0x0002,
ReadWrite = ReadOnly | WriteOnly,
Append = 0x0004,
Truncate = 0x0008,
Text = 0x0010,
Unbuffered = 0x0020,
NewOnly = 0x0040,
ExistingOnly = 0x0080
- 注解
- 在只写或读写模式下, 如果相关文件不存在, 该函数将在打开文件之前尝试创建一个新文件
◆ remove() [1/2]
bool Dtk::Core::DCapFile::remove |
( |
| ) |
|
如果文件存在则删除文件
- 注解
- 此处的存在指当前由setFileName() 指定的文件或者是在构造时指定的文件是否可读可写
-
需要在构造时或者手动指定了文件名才可以使用此函数, 否则请调用其重载的函数
-
文件需要在删除前被关闭
◆ remove() [2/2]
static bool Dtk::Core::DCapFile::remove |
( |
const QString & |
fileName | ) |
|
|
static |
◆ rename() [1/2]
bool Dtk::Core::DCapFile::rename |
( |
const QString & |
newName | ) |
|
如果文件名存在则重命名文件
- 参数
-
- 注解
- 需要在构造时或者手动指定了文件名才可以使用此函数, 否则请调用其重载的函数
◆ rename() [2/2]
static bool Dtk::Core::DCapFile::rename |
( |
const QString & |
oldName, |
|
|
const QString & |
newName |
|
) |
| |
|
static |
如果文件名存在则重命名文件
- 参数
-
[in] | oldName | 旧文件名 |
[in] | newName | 新文件名 |
◆ resize() [1/2]
static bool Dtk::Core::DCapFile::resize |
( |
const QString & |
filename, |
|
|
qint64 |
sz |
|
) |
| |
|
static |
◆ resize() [2/2]
bool Dtk::Core::DCapFile::resize |
( |
qint64 |
sz | ) |
|
|
override |
设置文件大小sz(以字节为单位)。如果调整大小成功, 则返回true;否则为false。如果sz大于当前文件, 则新字节将设置为 0;如果sz较小, 则文件将被简单地截断
- 注解
- 如果文件不存在, 此函数可能会无效
该类的文档由以下文件生成:
- include/filesystem/dcapfile.h
- docs/filesystem/dcapfile.zh_CN.dox