QT文件和文件夹操作,文件删除,文件夹复制,文件复制,文件夹创建

读取目录下的所有文件形成QFileInfoList 这个链表
list.at(i).suffix() == “mp4” 判断文件的后缀名是否为MP4
删除文件之前要加上文件所在目录也就是路径(my_localset.savedir+“/”)
file.remove();将文件删除

QDir d(my_localset.savedir);
 d.setFilter(QDir::NoDotAndDotDot|QDir::AllEntries);
 //d.setSorting( sort | direction);//| QDir::Reversed );
 QFileInfoList list = d.entryInfoList();
 for(int i=0;i<list.size();i++)
 {
     if(list.at(i).suffix() == "mp4")
     {
         QFile file;
         file.setFileName(my_localset.savedir+"/"+list.at(i).fileName());
         file.remove();
     }
 }

文件复制:将source文件夹下的文件复制到destination文件夹下

//source源文件目录路径,destination目的文件目录,override文件存在是否覆盖
bool localset::copyDir(const QString &source,const QString &destination, bool override)
{
    QDir directory(source);
    if (!directory.exists())
    {
        qDebug()<<"不存在";
        return false;
    }


    QString srcPath = QDir::toNativeSeparators(source);
    if (!srcPath.endsWith(QDir::separator()))
        srcPath += QDir::separator();
    QString dstPath = QDir::toNativeSeparators(destination);
    if (!dstPath.endsWith(QDir::separator()))
        dstPath += QDir::separator();


    bool error = false;
    QStringList fileNames = directory.entryList(QDir::AllEntries | QDir::NoDotAndDotDot | QDir::Hidden);
    for (QStringList::size_type i=0; i != fileNames.size(); ++i)
    {
        QString fileName = fileNames.at(i);
        QString srcFilePath = srcPath + fileName;
        QString dstFilePath = dstPath + fileName;
        QFileInfo fileInfo(srcFilePath);
        if (fileInfo.isFile() || fileInfo.isSymLink())
        {
            if (override)
            {
                QFile::setPermissions(dstFilePath, QFile::WriteOwner);
            }
            QFile::copy(srcFilePath, dstFilePath);
        }
        else if (fileInfo.isDir())
        {
            QDir dstDir(dstFilePath);
            dstDir.mkpath(dstFilePath);
            if (!copyDir(srcFilePath, dstFilePath, override))
            {
                error = true;
            }
        }
    }
    return !error;
}

文件复制

//srcPath源文件文件路径,dstPath目的文件路径,coverFileIfExist文件存在是否覆盖
bool copyFile(QString srcPath, QString dstPath, bool coverFileIfExist)
{
    srcPath.replace("\\", "/");
    dstPath.replace("\\", "/");
    if (srcPath == dstPath) {
        return true;
    }

    if (!QFile::exists(srcPath)) {  //源文件不存在
        return false;
    }

    if (QFile::exists(dstPath)) {
        if (coverFileIfExist) {
            QFile::remove(dstPath);
        }
    }

    if (!QFile::copy(srcPath, dstPath)){
        return false;
    }
    return true;
}```

创建文件夹:

QString dir_str = "C://DB_test//db";
QDir dir;
if(!dir.exists(dir_str))  //检测文件夹是否存在
{
    res = dir.mkpath(dir_str); //不存在则创建
}
Qt中,可以使用QFile和QDir两个类来实现将一个文件复制文件夹中的功能。 首先,我们需要创建一个QFile对象来表示要复制的源文件,以及一个QDir对象来表示目标文件夹。然后,使用QFile的copy()函数将源文件复制到目标文件夹中。 下面是一个具体的代码示例: ```cpp QString sourceFilePath = "/path/to/source/file.txt"; // 源文件路径 QString destinationFolderPath = "/path/to/destination/folder"; // 目标文件夹路径 QFile sourceFile(sourceFilePath); QDir destinationFolder(destinationFolderPath); // 检查源文件和目标文件夹是否存在 if (sourceFile.exists() && destinationFolder.exists()) { // 获取源文件名 QString fileName = sourceFile.fileName(); // 拼接目标文件路径 QString destinationFilePath = destinationFolderPath + "/" + fileName; // 复制文件 if (sourceFile.copy(destinationFilePath)) { qDebug() << "文件复制成功!"; } else { qDebug() << "文件复制失败!"; } } else { qDebug() << "源文件或目标文件夹不存在!"; } ``` 在这个示例中,我们首先创建了QFile和QDir对象,然后检查源文件和目标文件夹是否存在。如果存在,就通过拼接目标文件路径来复制文件复制成功后,会输出"文件复制成功!";如果复制失败或源文件或目标文件夹不存在,会相应地输出相应的提示信息。 这是一个基本的示例,你可以根据实际需求做进一步的适应或扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值