QT应用编程: 快速创建指定大小的空文件

简介: QT应用编程: 快速创建指定大小的空文件

一、环境介绍

操作系统: win10 64位

QT版本:  QT5.12.6

编译器:  MinGW 32

二、快速创建指定大小的空文件

2.1   核心函数

#include <windows.h>
/*
工程: UDP_Client
日期: 2021-04-22
作者: DS小龙哥
环境: win10 QT5.12.6 MinGW32
功能: 创建一个指定大小的空文件
// 创建的文件总大小 = dwHigh * 4G + dwLow
// 当总大小小于4G时,dwHigh可以设置为0,dwLow数字最大为4G - 1
*/
BOOL Widget::CreateTempFile(DWORD dwHigh, DWORD dwLow, TCHAR* pFileName)
{
    HANDLE hFile;
    HANDLE hMapFile;
    hFile = CreateFile(
        pFileName,
        GENERIC_WRITE | GENERIC_READ,
        FILE_SHARE_READ,
                nullptr,
        CREATE_ALWAYS,
        FILE_ATTRIBUTE_NORMAL,
        nullptr
        );
    if( hFile == INVALID_HANDLE_VALUE )
    {
        Log_Text_Display("文件创建失败1.\n");
        return FALSE;
    }
    hMapFile = CreateFileMapping(
        hFile,
        nullptr,
        PAGE_READWRITE,
        dwHigh,
        dwLow,
        nullptr
        );
    if( hMapFile == nullptr )
    {
        Log_Text_Display("文件创建失败2.\n");
        CloseHandle( hFile );
        return FALSE;
    }
    CloseHandle( hMapFile );
    CloseHandle( hFile );
    Log_Text_Display("随机文件创建成功.\n");
    return TRUE;
}

2.2   调用示例

//如果文件不存在
        if(file.exists()==false)
        {
            int value=ui->spinBox_auto_create_file_size->value();
            QDateTime current_date_time =QDateTime::currentDateTime();
            QString current_date =current_date_time.toString("yyyy-MM-dd-hh-mm-ss");
            Src_File=(QString("%1/%2.txt").arg(ui->lineEdit_auto_create_file_path->text()).arg(current_date));
            wchar_t *pWideChar = new wchar_t[Src_File.size()+1];
            int actualLen =Src_File.toWCharArray(pWideChar);
            pWideChar[actualLen]='\0';
            //如果大于4G
            if(value>4*1024)
            {
                //自动创建文件
                create_flag=CreateTempFile(value/(4*1024),value%(4*1024),pWideChar);
            }
            else
            {
                //自动创建文件
                create_flag=CreateTempFile(0,value*1024*1024,pWideChar);
            }
            //释放内存
            delete  [] pWideChar;
        }


目录
相关文章
|
2月前
|
计算机视觉 数据格式
使用opencv在Qt控件上播放mp4文件
使用opencv在Qt控件上播放mp4文件
82 2
|
2月前
|
开发框架 Linux API
Qt:构建高效且用户友好的跨平台应用
Qt:构建高效且用户友好的跨平台应用
|
2月前
|
开发框架 网络协议 数据库
Qt:构建跨平台应用的强大框架
Qt:构建跨平台应用的强大框架
|
2月前
|
Web App开发 编解码 安全
视频会议技术 入门探究:WebRTC、Qt与FFmpeg在视频编解码中的应用
视频会议技术 入门探究:WebRTC、Qt与FFmpeg在视频编解码中的应用
285 4
|
2月前
|
存储 C++
基于Qt的简易文件压缩与解压缩工具设计与实现
基于Qt的简易文件压缩与解压缩工具设计与实现
79 1
|
2月前
【QT】创建、打开QT项目只显示.pro文件的问题解决
【QT】创建、打开QT项目只显示.pro文件的问题解决
232 0
|
4天前
Qt颜色、文件、字体对话框
Qt颜色、文件、字体对话框
10 1
|
2月前
|
Windows 安全 C++
Qt字符串类应用与常用基本数据类型
Qt字符串类应用与常用基本数据类型
|
2月前
|
Windows
Qt 目录操作(QDir 类)及展示系统文件实战 & QFilelnfo 类介绍和获取文件属性项目实战
Qt 目录操作(QDir 类)及展示系统文件实战 & QFilelnfo 类介绍和获取文件属性项目实战
Qt 目录操作(QDir 类)及展示系统文件实战 & QFilelnfo 类介绍和获取文件属性项目实战
|
2月前
|
XML 数据可视化 程序员
Qt 中的项目文件解析和命名规范
Qt 中的项目文件解析和命名规范