Tutorial básico de QT (operaciones de archivos en QT)


Prefacio

En este artículo, explicaremos las operaciones de archivos en QT. Las operaciones de archivos son un punto muy importante para QT, por lo que las siguientes palabras explicarán las operaciones de archivos en QT en detalle.

1. Método de operación de archivos

En QT, las operaciones con archivos se logran a través de las clases de manejo de archivos y directorios de Qt. Las siguientes son algunas funciones de operación de archivos de uso común:

1. Abrir y cerrar archivos:
los archivos se pueden abrir y cerrar en QT usando la clase QFile. El código de muestra es el siguiente:

#include <QFile>

// 打开文件
QFile file("path/to/file.txt");
if (file.open(QIODevice::ReadOnly)) {
    
    
    // 文件已成功打开,可以进行读取操作
    // ...
    // 关闭文件
    file.close();
}

Los archivos de texto se pueden leer y escribir usando la clase QTextStream. El código de muestra es el siguiente:

#include <QFile>
#include <QTextStream>

// 打开文件
QFile file("path/to/file.txt");
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
    
    
    QTextStream in(&file);
    
    // 逐行读取文件内容
    while (!in.atEnd()) {
    
    
        QString line = in.readLine();
        // 处理读取到的每一行数据
        // ...
    }
    
    // 关闭文件
    file.close();
}

2. Escribir en un archivo:
utilice la clase QFile y la clase QTextStream para escribir texto en un archivo. El código de muestra es el siguiente:

#include <QFile>
#include <QTextStream>

// 打开文件
QFile file("path/to/file.txt");
if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
    
    
    QTextStream out(&file);
    
    // 写入数据到文件
    out << "Hello, World!" << endl;
    
    // 关闭文件
    file.close();
}

3. Copiar y mover archivos:
use la función copiar () de la clase QFile para copiar archivos y la función renombrar () para mover o cambiar el nombre de archivos. El código de muestra es el siguiente:

#include <QFile>

// 复制文件
QString sourceFilePath = "path/to/source.txt";
QString destinationFilePath = "path/to/destination.txt";
QFile::copy(sourceFilePath, destinationFilePath);

// 移动或重命名文件
QString filePath = "path/to/file.txt";
QString newFilePath = "path/to/newfile.txt";
QFile::rename(filePath, newFilePath);

4. Eliminar archivos:
utilice la función remove() de la clase QFile para eliminar archivos. El código de muestra es el siguiente:

#include <QFile>

// 删除文件
QString filePath = "path/to/file.txt";
QFile::remove(filePath);

Estas son funciones de operación de archivos de uso común en QT. Puede usar clases y funciones apropiadas de acuerdo con las necesidades específicas para realizar operaciones como abrir, leer, escribir, copiar, mover y eliminar archivos. Al realizar operaciones con archivos, recuerde cerrar el archivo en el momento adecuado para liberar recursos del sistema.

2. Clase QFileInfo

La clase QFileInfo es una clase en Qt que se utiliza para obtener y operar información de archivos. Proporciona muchos métodos convenientes que le permiten obtener fácilmente varias propiedades y metadatos sobre archivos.

Puede utilizar la clase QFileInfo para obtener el nombre del archivo, la ruta, el tamaño, la fecha de modificación, los permisos de acceso y otra información. También puede determinar si el archivo existe, si es un directorio y determinar el tipo y sufijo del archivo.

Las siguientes son algunas funciones de uso común y el uso de la clase QFileInfo:

1. Constructor:
la clase QFileInfo tiene varios constructores que se pueden utilizar. El más común es crear un objeto QFileInfo pasando una ruta de archivo.

QFileInfo fileInfo("path/to/file.txt");

2. Consulta de información del archivo:
utilice la función fileName() para obtener el nombre del archivo.

QString fileName = fileInfo.fileName();

Utilice la función filePath() para obtener la ruta completa del archivo.

QString filePath = fileInfo.filePath();

Utilice la función size() para obtener el tamaño de un archivo en bytes.

qint64 fileSize = fileInfo.size();

Utilice la función lastModified() para obtener la fecha y hora de la última modificación de un archivo.

QDateTime lastModified = fileInfo.lastModified();

3. Consulta de estado del archivo:

Utilice la función existe() para comprobar si el archivo existe.

bool fileExists = fileInfo.exists();

Utilice la función isFile() para comprobar si el archivo es un archivo normal.

bool isRegularFile = fileInfo.isFile();

Utilice la función isDir() para comprobar si el archivo es un directorio.

bool isDirectory = fileInfo.isDir();

4. Consulta de permiso de acceso a archivos:
utilice la función isReadable() para comprobar si el archivo es legible.

bool isReadable = fileInfo.isReadable();

Utilice la función isWritable() para comprobar si se puede escribir en el archivo.

bool isWritable = fileInfo.isWritable();

5. Consulta de tipo de archivo:
utilice la función sufijo () para obtener el nombre del sufijo del archivo.

QString suffix = fileInfo.suffix();

Utilice la función completeSuffix() para obtener el sufijo completo del archivo, incluidas todas las extensiones.

QString completeSuffix = fileInfo.completeSuffix();

4. Clase QTemporaryFile

QTemporaryFile es una clase en Qt para crear archivos temporales. Los archivos temporales son archivos que se utilizan para almacenar datos temporalmente mientras se ejecuta una aplicación y, por lo general, se eliminan automáticamente cuando ya no son necesarios.

La clase QTemporaryFile hereda de la clase QFile, por lo que tiene todas las funciones de la clase QFile y también proporciona algunos métodos adicionales para manejar la creación, eliminación automática y otras características de archivos temporales.

Los siguientes son algunos métodos y usos comunes de la clase QTemporaryFile:

1. Constructor:
la clase QTemporaryFile tiene varios constructores, que pueden usar diferentes formas de parámetros para crear archivos temporales. El más utilizado es el constructor predeterminado.

QTemporaryFile tempFile;

2. Operaciones de archivos:
utilice la función open() para abrir archivos temporales para operaciones de lectura y escritura.

if (tempFile.open()) {
    
    
    // 文件操作代码
}

Utilice la función write() para escribir datos en un archivo temporal.

QByteArray data = "Hello, world!";
tempFile.write(data);

Utilice la función readAll() para leer el contenido de todo el archivo temporal a la vez.

QByteArray fileData = tempFile.readAll();

3. Estado y atributos del archivo:
utilice la función fileName() para obtener la ruta del archivo temporal.

QString filePath = tempFile.fileName();

Utilice la función size() para obtener el tamaño de un archivo temporal en bytes.

qint64 fileSize = tempFile.size();

4. Eliminación automática:
utilice la función autoRemove() para establecer si los archivos temporales se eliminan automáticamente cuando se destruyen.

tempFile.setAutoRemove(true); // 默认值为true,表示自动删除文件

Cuando el objeto de archivo temporal (QTemporaryFile) sale del alcance o se destruye, si se configura la eliminación automática, el archivo se eliminará automáticamente. También puede llamar manualmente a la función remove() para eliminar manualmente archivos temporales.

tempFile.remove(); // 手动删除文件

Los anteriores son sólo algunos métodos y usos comunes de la clase QTemporaryFile. Puede consultar la documentación oficial de Qt para obtener más detalles y ejemplos sobre la clase QTemporaryFile y otras funciones disponibles.

Resumir

Este artículo lo explicará aquí.

Supongo que te gusta

Origin blog.csdn.net/m0_49476241/article/details/132951141
Recomendado
Clasificación