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 = "_") |
成员类型文档
[since Visindigo 0.13.0] enum FileUtility::BinarySizeFormat
此枚举用于表示文件大小的单位
| Constant | Value | Description |
|---|---|---|
Visindigo::Utility::FileUtility::IEC | 1024 | 二进制单位 |
Visindigo::Utility::FileUtility::SI | 1000 | 十进制单位 |
以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
此枚举用于表示文件大小的单位
| Constant | Value | Description |
|---|---|---|
Visindigo::Utility::FileUtility::bit | 1 | 位 |
Visindigo::Utility::FileUtility::Byte | 8 | 字节 |
Visindigo::Utility::FileUtility::Char | Byte | 字符,与Byte相同 |
这个enum 从 Visindigo 0.13.0 开始支持。
[since Visindigo 0.13.0] enum FileUtility::CountingUnit
此枚举用于表示文件大小的单位
| Constant | Value | Description |
|---|---|---|
Visindigo::Utility::FileUtility::_0 | 1 | (无单位) |
Visindigo::Utility::FileUtility::K | 2 | 千 |
Visindigo::Utility::FileUtility::M | 3 | 兆 |
Visindigo::Utility::FileUtility::G | 4 | 吉 |
Visindigo::Utility::FileUtility::T | 5 | 太 |
Visindigo::Utility::FileUtility::P | 6 | 拍 |
Visindigo::Utility::FileUtility::E | 7 | 艾 |
Visindigo::Utility::FileUtility::Z | 8 | 泽 |
Visindigo::Utility::FileUtility::Y | 9 | 尧 |
这个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 开始支持。