DtkCore
DTK Core module
载入中...
搜索中...
未找到
Dtk::Core::DCapFile类 参考

对于文件操作的安全封装, 提供了带有安全管控的文件读取, 相关漏洞见CWE_22 更多...

类 Dtk::Core::DCapFile 继承关系图:
Dtk::Core::DObject

Public 成员函数

 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较小, 则文件将被简单地截断
 

静态 Public 成员函数

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)区别是手动指定文件名
 

额外继承的成员函数

- Protected 成员函数 继承自 Dtk::Core::DObject
 DObject (DObject *parent=nullptr)
 
 DObject (DObjectPrivate &dd, DObject *parent=nullptr)
 
- Protected 属性 继承自 Dtk::Core::DObject
QScopedPointer< DObjectPrivated_d_ptr
 

详细描述

对于文件操作的安全封装, 提供了带有安全管控的文件读取, 相关漏洞见CWE_22

对于文件夹操作的封装

构造及析构函数说明

◆ DCapFile()

Dtk::Core::DCapFile::DCapFile ( const QString &  name,
QObject *  parent = nullptr 
)

重载的构造函数, 接受传入一个文件名, 并创建一个文件对象

注解
调用此构造函数相当于调用默认构造函数+DCapFile::setFileName()

成员函数说明

◆ copy() [1/2]

static bool Dtk::Core::DCapFile::copy ( const QString &  fileName,
const QString &  newName 
)
static

该函数是重载DCapFile::copy(const QString &newName)区别是需要手动传入原始文件名

参见
DCapFile::copy(const QString &newName)

◆ 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

文件是否存在

参数
[in]fileName文件名
注解
此处的存在指的是此函数的传入的文件名指向的文件是否可读可写

◆ link() [1/2]

bool Dtk::Core::DCapFile::link ( const QString &  newName)

创建一个名为newName的链接

该链接指向当前由setFileName()指定的文件或者是在构造时指定的文件。链接是什么取决于底层文件系统(无论是Windows上的快捷方式还是Unix上的符号链接)。如果成功, 则返回ture;否则返回false

注解
如果是windows系统的newName参数必须有<tt>.lnk合法后缀才可用
参数
[in]newName新文件名

◆ link() [2/2]

static bool Dtk::Core::DCapFile::link ( const QString &  oldname,
const QString &  newName 
)
static

该函数是重载DCapFile::link()区别是需要手动传入原始文件名

参见
DCapFile::link(const QString &newName)

◆ 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

如果文件存在则删除文件

参数
[in]fileName文件名
注解
此处的存在指的是此函数的传入的文件名指向的文件是否可读可写
文件需要在删除前被关闭
参见
DCapFile::remove()

◆ rename() [1/2]

bool Dtk::Core::DCapFile::rename ( const QString &  newName)

如果文件名存在则重命名文件

参数
[in]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

该函数是重载DCapFile::resize(qint64 sz)区别是手动指定文件名

参见
DCapFile::resize(qint64 sz)

◆ resize() [2/2]

bool Dtk::Core::DCapFile::resize ( qint64  sz)
override

设置文件大小sz(以字节为单位)。如果调整大小成功, 则返回true;否则为false。如果sz大于当前文件, 则新字节将设置为 0;如果sz较小, 则文件将被简单地截断

注解
如果文件不存在, 此函数可能会无效

该类的文档由以下文件生成: