Yayin Story Studio logo Yayin Story Studio 项目文档
回到主页 用户手册

Visindigo::Utility::FileUtility Class

class Visindigo::Utility::FileUtility

此类为Yayin Story Studio 提供文件操作的相关函数. 详情...

头文件: #include <FileUtility>
自以下版本: Visindigo 0.13.0

公开类型

(自 Visindigo 0.13.0 引入) enum BinarySizeFormat { IEC, SI }
(自 Visindigo 0.13.0 引入) enum BinarySizeUnit { bit, Byte, Char }
(自 Visindigo 0.13.0 引入) enum CountingUnit { _0, K, M, G, T, …, Y }

静态公开成员

(自 Visindigo 0.13.0 引入) void copyFile(const QString &srcPath, const QString &dstPath, bool rinse = true, bool overwrite = false)
(自 Visindigo 0.13.0 引入) bool createDir(const QString &dirPath)
(自 Visindigo 0.13.0 引入) void deleteFile(const QString &filePath, bool moveToTrash = true)
(自 Visindigo 0.13.0 引入) QStringList fileFilter(const QString &root, const QStringList &exts, bool considerSubFolder = true)
(自 Visindigo 0.14.0 引入) QStringList folderFilter(const QString &root, bool considerSubFolder = false)
(自 Visindigo 0.13.0 引入) QDateTime getFileAccessTime(const QString &filePath)
(自 Visindigo 0.13.0 引入) QDateTime getFileCreateTime(const QString &filePath)
(自 Visindigo 0.13.0 引入) QDateTime getFileModifyTime(const QString &filePath)
(自 Visindigo 0.13.0 引入) QString getProgramPath(char **argv = nullptr)
(自 Visindigo 0.13.0 引入) QString getRelativeIfStartWith(const QString &startWith, const QString &path)
(自 Visindigo 0.13.0 引入) bool isDirEmpty(const QString &dirPath)
(自 Visindigo 0.13.0 引入) bool isDirExist(const QString &dirPath)
(自 Visindigo 0.13.0 引入) bool isFileExist(const QString &filePath)
(自 Visindigo 0.13.0 引入) void openBrowser(const QString &url)
(自 Visindigo 0.13.0 引入) void openExplorer(const QString &path)
(自 Visindigo 0.13.0 引入) QString readAll(const QString &filePath)
(自 Visindigo 0.13.0 引入) QByteArray readByteArray(const QString &filePath)
(自 Visindigo 0.13.0 引入) QStringList readLines(const QString &filePath)
(自 Visindigo 0.13.0 引入) QString readableSize(qint64 bytes, Visindigo::Utility::FileUtility::BinarySizeUnit u = Byte, Visindigo::Utility::FileUtility::BinarySizeFormat f = IEC)
(自 Visindigo 0.13.0 引入) void saveAll(const QString &filePath, const QString &data)
(自 Visindigo 0.13.0 引入) void saveByteArray(const QString &filePath, const QByteArray &data)
(自 Visindigo 0.13.0 引入) void saveLines(const QString &filePath, const QStringList &lines, const QString &joinLine = "\n")
(自 Visindigo 0.13.0 引入) qint64 sizeBytes(const QString &root)
(自 Visindigo 0.13.0 引入) QString toLegelFileName(const QString &name, const QString &replace = "_")

详细说明

这类所有函数都是静态函数,所以你不需要创建它的实例。

总的来说,这里都是一些仅通过QDirQFileQFileInfo等文件系统相关类 实现的函数。

成员类型文档

[since Visindigo 0.13.0] enum FileUtility::BinarySizeFormat

此枚举用于表示文件大小的单位

ConstantValueDescription
Visindigo::Utility::FileUtility::IEC1024二进制单位
Visindigo::Utility::FileUtility::SI1000十进制单位

以IEC为单位的文件大小单位是基于1024的,而以SI为单位的文件大小单位是基于1000的。 前者会产生KiB、MiB、GiB等单位,而后者会产生KB、MB、GB等单位。 请注意,虽然在日常使用中我们经常将KB、MB等单位误用来表示基于1024的单位, 但实际上它们应该是基于1000的单位,这是微软的黑锅。

这个enum 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] enum FileUtility::BinarySizeUnit

此枚举用于表示文件大小的单位

ConstantValueDescription
Visindigo::Utility::FileUtility::bit1
Visindigo::Utility::FileUtility::Byte8字节
Visindigo::Utility::FileUtility::CharByte字符,与Byte相同

这个enum 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] enum FileUtility::CountingUnit

此枚举用于表示文件大小的单位

ConstantValueDescription
Visindigo::Utility::FileUtility::_01(无单位)
Visindigo::Utility::FileUtility::K2
Visindigo::Utility::FileUtility::M3
Visindigo::Utility::FileUtility::G4
Visindigo::Utility::FileUtility::T5
Visindigo::Utility::FileUtility::P6
Visindigo::Utility::FileUtility::E7
Visindigo::Utility::FileUtility::Z8
Visindigo::Utility::FileUtility::Y9

这个enum 从 Visindigo 0.13.0 开始支持。

成员函数文档

[static, since Visindigo 0.13.0] void FileUtility::copyFile(const QString &srcPath, const QString &dstPath, bool rinse = true, bool overwrite = false)

srcPath 源文件路径 dstPath 目标文件路径 rinse 是否使用漂洗的方式复制文件 overwrite 是否覆盖已存在的目标文件

复制文件,如果rinse为true,则使用漂洗的方式复制文件,否则使用QFile::copy(),如果overwrite为true,则覆盖已存在的目标文件,否则不进行复制。

漂洗模式只忠实传递文件本体的二进制数据,不从源文件读取任何元数据,也不写入任何元数据到目标文件, 因此在某些特殊情况下可能会得到一个与源文件不同的目标文件,例如当源文件具有特殊权限时,目标文件可能会得到默认权限; 当源文件具有特殊属性时,目标文件可能不会继承这些属性;当源文件具有特殊时间戳时,目标文件可能会得到当前时间戳。

这对于从qrc编译到二进制文件内的资源文件向外部复制时很有用,因为qrc资源文件会自动设为只读, 并且具有特殊的权限和属性,使用漂洗模式复制可以得到一个正常的可读写文件。

这个function 从 Visindigo 0.13.0 开始支持。

[static, since Visindigo 0.13.0] bool FileUtility::createDir(const QString &dirPath)

dirPath 目录路径

创建指定目录,

return 是否创建成功。

这个function 从 Visindigo 0.13.0 开始支持。

[static, since Visindigo 0.13.0] void FileUtility::deleteFile(const QString &filePath, bool moveToTrash = true)

filePath 文件路径 moveToTrash 是否移动到回收站

删除指定文件,如果moveToTrash为true,则移动到回收站,否则直接删除。

这个function 从 Visindigo 0.13.0 开始支持。

[static, since Visindigo 0.13.0] QStringList FileUtility::fileFilter(const QString &root, const QStringList &exts, bool considerSubFolder = true)

root 根目录 exts 文件扩展名,这exts应形如 "*.ext1"、"*.ext2"、"*.ext3",请务必注意星号。 considerSubFolder 是否考虑子目录

过滤指定目录下的文件。

return 一个QStringList,包含了所有符合条件的文件的绝对路径。

这个function 从 Visindigo 0.13.0 开始支持。

[static, since Visindigo 0.14.0] QStringList FileUtility::folderFilter(const QString &root, bool considerSubFolder = false)

root 根目录 considerSubFolder 是否考虑子目录。请注意,这个函数的considerSubFolder默认为false,与fileFilter不同。

获取指定目录下的文件夹。

return 一个QStringList,包含了所有符合条件的文件夹的绝对路径。

这个function 从 Visindigo 0.14.0 开始支持。

[static, since Visindigo 0.13.0] QDateTime FileUtility::getFileAccessTime(const QString &filePath)

filePath 文件路径

return 指定文件的访问时间,返回一个QDateTime。如果文件不存在,则返回一个无效的QDateTime

这个function 从 Visindigo 0.13.0 开始支持。

[static, since Visindigo 0.13.0] QDateTime FileUtility::getFileCreateTime(const QString &filePath)

filePath 文件路径

return 指定文件的创建时间,返回一个QDateTime。如果文件不存在,则返回一个无效的QDateTime

这个function 从 Visindigo 0.13.0 开始支持。

[static, since Visindigo 0.13.0] QDateTime FileUtility::getFileModifyTime(const QString &filePath)

filePath 文件路径

return 指定文件的修改时间,返回一个QDateTime。如果文件不存在,则返回一个无效的QDateTime

这个function 从 Visindigo 0.13.0 开始支持。

[static, since Visindigo 0.13.0] QString FileUtility::getProgramPath(char **argv = nullptr)

argv 程序启动时输入main的参数

return 程序所在目录的绝对路径。

这个function 从 Visindigo 0.13.0 开始支持。

[static, since Visindigo 0.13.0] QString FileUtility::getRelativeIfStartWith(const QString &startWith, const QString &path)

startWith 起始路径 path 绝对路径

return 如果path以startWith开头,相对于startWith的路径,否则返回path。

这个function 从 Visindigo 0.13.0 开始支持。

[static, since Visindigo 0.13.0] bool FileUtility::isDirEmpty(const QString &dirPath)

dirPath 目录路径

return 指定目录是否为空。如果目录不存在,则返回false。

这个function 从 Visindigo 0.13.0 开始支持。

[static, since Visindigo 0.13.0] bool FileUtility::isDirExist(const QString &dirPath)

dirPath 目录路径

return 指定目录是否存在

这个function 从 Visindigo 0.13.0 开始支持。

[static, since Visindigo 0.13.0] bool FileUtility::isFileExist(const QString &filePath)

filePath 文件路径

return 指定文件是否存在

这个function 从 Visindigo 0.13.0 开始支持。

[static, since Visindigo 0.13.0] void FileUtility::openBrowser(const QString &url)

url 链接

打开指定链接的浏览器。

这个function 从 Visindigo 0.13.0 开始支持。

[static, since Visindigo 0.13.0] void FileUtility::openExplorer(const QString &path)

path 路径

打开指定路径的资源管理器。 从0.15.0开始,这个函数在Windows上进行优化:如果路径是一个文件,则会额外选中该文件。

这个function 从 Visindigo 0.13.0 开始支持。

[static, since Visindigo 0.13.0] QString FileUtility::readAll(const QString &filePath)

filePath 文件路径

读取文件的所有内容。如果文件不存在或无法打开,则返回一个空字符串。 return 包含所有文本内容的QString

这个function 从 Visindigo 0.13.0 开始支持。

[static, since Visindigo 0.13.0] QByteArray FileUtility::readByteArray(const QString &filePath)

filePath 文件路径

读取文件的所有内容。如果文件不存在或无法打开,则返回一个空QByteArray。 return 包含所有内容的QByteArray

这个function 从 Visindigo 0.13.0 开始支持。

[static, since Visindigo 0.13.0] QStringList FileUtility::readLines(const QString &filePath)

filePath 文件路径

return 以行列表的形式读取文件的内容。如果文件不存在或无法打开,则返回一个空列表。

这个function 从 Visindigo 0.13.0 开始支持。

[static, since Visindigo 0.13.0] QString FileUtility::readableSize(qint64 bytes, Visindigo::Utility::FileUtility::BinarySizeUnit u = Byte, Visindigo::Utility::FileUtility::BinarySizeFormat f = IEC)

bytes 字节数 u 单位 f 格式

获取指定字节数的可读大小, return 一个QString,包含了可读大小和单位,例如"1.23MB"。

这个function 从 Visindigo 0.13.0 开始支持。

[static, since Visindigo 0.13.0] void FileUtility::saveAll(const QString &filePath, const QString &data)

filePath 文件路径 data 需要保存的数据

QString保存到文件中

这个function 从 Visindigo 0.13.0 开始支持。

[static, since Visindigo 0.13.0] void FileUtility::saveByteArray(const QString &filePath, const QByteArray &data)

filePath 文件路径 data 需要保存的数据

QByteArray保存到文件中

这个function 从 Visindigo 0.13.0 开始支持。

[static, since Visindigo 0.13.0] void FileUtility::saveLines(const QString &filePath, const QStringList &lines, const QString &joinLine = "\n")

filePath 文件路径 lines 需要保存的行列表 joinLine 行连接符

QStringList保存到文件中

这个function 从 Visindigo 0.13.0 开始支持。

[static, since Visindigo 0.13.0] qint64 FileUtility::sizeBytes(const QString &root)

root 根目录

return 指定目录下的文件大小,单位为字节。如果目录不存在,则返回0。

这个function 从 Visindigo 0.13.0 开始支持。

[static, since Visindigo 0.13.0] QString FileUtility::toLegelFileName(const QString &name, const QString &replace = "_")

name 文件名 replace 替换字符

将文件名中的非法字符替换为指定字符 return 返回合法的文件名。

这个函数不验证用于替换的字符是否合法,请务必保证它合法,否则可能会得到一个仍然非法的文件名。

Warning: 这个函数的名称存在拼写错误,预备于0.17.0之后修正,且不保留旧名称的兼容性。

这个function 从 Visindigo 0.13.0 开始支持。