当前位置: 首页 > news >正文

QT 磁盘文件 教程03-创建、删除、复制文件

【1】新建文件

bool CreateFile(QString name){
    QString fileName = name ; //"文件绝对路径名"
    QFile file(fileName);
    QFileInfo fileInfo(file);
    QString fileExtension = fileInfo.suffix();
    if(fileExtension.isEmpty()) {
        fileName+=".txt";
    }
    file.setFileName(fileName);
    fileInfo.setFile(file);
    if (!fileInfo.exists()) {
           // 文件不存在,创建文件
           if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
               file.close();
               return true;
           }
    }
    else
    {
           qDebug()<<"文件已存在\n";
           return false;
    }
}

【2】删除文件

bool DeleteFile(QString fileName){
    if (QFile::exists(fileName)) {
        if (QFile::remove(m_currentSelectFileName)) {
            return true;
        }        
    }
    return false;
}

【3】复制文件

bool CopyFile(QString src, QString dest){
    if (QFile::copy(src, dest)) {
        qDebug() << "文件复制成功";
        return true;
    } else {
        qDebug() << "文件复制失败";
        return false;
    }
}

另一个复制文件的方式:

bool CopyFile(QString src, QString dest){
    QFile sourceFile(src);
    QFile destinationFile(dest); 
    
    if (sourceFile.open(QIODevice::ReadOnly) && destinationFile.open(QIODevice::WriteOnly))                     
    {
        // 创建一个缓冲区来存储读取的数据
        char buffer[1024];
        qint64 bytesRead;
 
        // 循环读取并写入数据,直到文件末尾
        while ((bytesRead = sourceFile.read(buffer, sizeof(buffer))) > 0) {
            destinationFile.write(buffer, bytesRead);
        } 
        
        sourceFile.close();
        destinationFile.close(); 
        qDebug() << "文件复制成功";
        return true;
    } else {
        qDebug() << "文件复制失败";
        return false;
    }
}

相关文章:

  • numpy学习笔记2:ones = np.ones((2, 4)) 的详解
  • PostgreSQL中array_to_string函数来将数组转换成逗号分隔的字符串
  • C#:深入理解Thread.Sleep与Task.Delay
  • 类和对象C++
  • 鸿蒙数据持久化之首选项
  • WebGL学习2
  • Echarts 折线图
  • 【Linux笔记】动态库与静态库的理解与加载
  • 《数字图像处理》第三章 灰度变换与空间滤波学习笔记(3.1-3.2)反转、对数、幂律、分段线性等变换
  • 【QT:QSS】
  • 在 MySQL 中,只写 JOIN 等价于?
  • linux 命令 mkdir
  • Spring中DI与IOC的关系解析
  • 卷积神经网络 - 卷积层(具体例子)
  • 第六节 MATLAB M-Files
  • MySQL 关联查询知识
  • 网络篇--网络基础
  • Fortinet全新下一代防火墙NGFW
  • LS-NET-008-OSPF、BGP、RIP三大路由协议
  • 【css酷炫效果】纯CSS实现黑白电视故障雪花
  • 做旅游网站教程/semseo
  • 新闻网站建设合同/北京网站制作设计
  • 专业做包包的网站好/抖音seo排名
  • 武汉值得去的互联网公司/北京快速优化排名
  • wordpress替换字体颜色/网站seo视频教程
  • 开公司怎么找客户/seo点击排名工具