En esta página

QFileInfo Class

La clase QFileInfo proporciona una API independiente del sistema operativo para recuperar información sobre las entradas del sistema de ficheros. Más...

Cabecera: #include <QFileInfo>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

Esta clase es igual-comparable.

Nota: Todas las funciones de esta clase son reentrantes.

Funciones públicas

QFileInfo()
QFileInfo(const QFileDevice &file)
QFileInfo(const QString &path)
(since 6.0) QFileInfo(const std::filesystem::path &file)
QFileInfo(const QDir &dir, const QString &path)
(since 6.0) QFileInfo(const QDir &dir, const std::filesystem::path &path)
QFileInfo(const QFileInfo &fileinfo)
~QFileInfo()
QDir absoluteDir() const
QString absoluteFilePath() const
QString absolutePath() const
QString baseName() const
QDateTime birthTime() const
(since 6.6) QDateTime birthTime(const QTimeZone &tz) const
QString bundleName() const
bool caching() const
QString canonicalFilePath() const
QString canonicalPath() const
QString completeBaseName() const
QString completeSuffix() const
QDir dir() const
bool exists() const
QString fileName() const
QString filePath() const
QDateTime fileTime(QFileDevice::FileTime time) const
(since 6.6) QDateTime fileTime(QFileDevice::FileTime time, const QTimeZone &tz) const
(since 6.0) std::filesystem::path filesystemAbsoluteFilePath() const
(since 6.0) std::filesystem::path filesystemAbsolutePath() const
(since 6.0) std::filesystem::path filesystemCanonicalFilePath() const
(since 6.0) std::filesystem::path filesystemCanonicalPath() const
(since 6.0) std::filesystem::path filesystemFilePath() const
(since 6.2) std::filesystem::path filesystemJunctionTarget() const
(since 6.0) std::filesystem::path filesystemPath() const
(since 6.6) std::filesystem::path filesystemReadSymLink() const
(since 6.0) std::filesystem::path filesystemSymLinkTarget() const
QString group() const
uint groupId() const
bool isAbsolute() const
(since 6.4) bool isAlias() const
bool isBundle() const
bool isDir() const
bool isExecutable() const
bool isFile() const
bool isHidden() const
bool isJunction() const
bool isNativePath() const
(since 6.10) bool isOther() const
bool isReadable() const
bool isRelative() const
bool isRoot() const
bool isShortcut() const
bool isSymLink() const
bool isSymbolicLink() const
bool isWritable() const
(since 6.2) QString junctionTarget() const
QDateTime lastModified() const
(since 6.6) QDateTime lastModified(const QTimeZone &tz) const
QDateTime lastRead() const
(since 6.6) QDateTime lastRead(const QTimeZone &tz) const
bool makeAbsolute()
QDateTime metadataChangeTime() const
(since 6.6) QDateTime metadataChangeTime(const QTimeZone &tz) const
QString owner() const
uint ownerId() const
QString path() const
bool permission(QFileDevice::Permissions permissions) const
QFileDevice::Permissions permissions() const
(since 6.6) QString readSymLink() const
void refresh()
void setCaching(bool enable)
void setFile(const QString &path)
(since 6.0) void setFile(const std::filesystem::path &path)
void setFile(const QFileDevice &file)
void setFile(const QDir &dir, const QString &path)
qint64 size() const
(since 6.0) void stat()
QString suffix() const
void swap(QFileInfo &other)
QString symLinkTarget() const
QFileInfo &operator=(QFileInfo &&other)
QFileInfo &operator=(const QFileInfo &fileinfo)

Miembros públicos estáticos

bool exists(const QString &path)
QFileInfoList
bool operator!=(const QFileInfo &lhs, const QFileInfo &rhs)
bool operator==(const QFileInfo &lhs, const QFileInfo &rhs)

Macros

Descripción detallada

QFileInfo proporciona información sobre una entrada del sistema de ficheros, como su nombre, ruta, derechos de acceso y si es un fichero normal, directorio o enlace simbólico. También están disponibles el tamaño de la entrada y la hora de la última modificación/lectura. QFileInfo también puede utilizarse para obtener información sobre un recurso Qt.

Un QFileInfo puede apuntar a una entrada del sistema de archivos con una ruta absoluta o relativa:

  • En Unix, las rutas absolutas comienzan con el separador de directorios '/'. En Windows, las rutas absolutas comienzan con una especificación de unidad (por ejemplo, D:/).
  • Las rutas relativas comienzan con un nombre de directorio o un nombre de archivo normal y especifican la ruta de una entrada del sistema de archivos relativa al directorio de trabajo actual.

Un ejemplo de ruta absoluta es la cadena "/tmp/quartz". Una ruta relativa puede ser "src/fatlib". Puedes utilizar la función isRelative() para comprobar si un QFileInfo está utilizando una ruta relativa o absoluta. Puedes llamar a la función makeAbsolute() para convertir la ruta de un QFileInfo relativo a una ruta absoluta.

Nota: Las rutas que comienzan con dos puntos (:) siempre se consideran absolutas, ya que denotan un QResource.

La ruta de entrada al sistema de ficheros sobre la que trabaja el QFileInfo se establece en el constructor o posteriormente con setFile(). Utilice exists() para ver si la entrada existe realmente y size() para obtener su tamaño.

El tipo de entrada del sistema de archivos se obtiene con isFile(), isDir(), y isSymLink(). La función symLinkTarget() proporciona la ruta absoluta del destino al que apunta el enlace simbólico.

Los elementos de la ruta de la entrada del sistema de archivos pueden extraerse con path() y fileName(). Las partes de fileName() pueden extraerse con baseName(), suffix() o completeSuffix(). Los objetos QFileInfo que se refieren a directorios creados por clases Qt no tendrán un separador de directorio al final '/'. Si desea utilizar separadores en sus propios objetos de información de archivos, sólo tiene que añadir uno a la ruta de la entrada dada a los constructores o setFile().

La información relacionada con la fecha y la hora se devuelve mediante birthTime(), fileTime(), lastModified(), lastRead() y metadataChangeTime(). La información sobre permisos de acceso puede obtenerse con isReadable(), isWritable() y isExecutable(). La información sobre la propiedad puede obtenerse con owner(), ownerId(), group() y groupId(). También puede examinar los permisos y la propiedad en una sola sentencia utilizando la función permission().

En Unix (incluidos macOS e iOS), las funciones de obtención de propiedades de esta clase devuelven propiedades como la hora y el tamaño del destino, no del enlace simbólico, ya que Unix gestiona los enlaces simbólicos de forma transparente. Abrir un enlace simbólico utilizando QFile abre efectivamente el objetivo del enlace. Por ejemplo:

#ifdef Q_OS_UNIX

QFileInfo info1("/home/bob/bin/untabify");
info1.isSymLink();          // returns true
info1.absoluteFilePath();   // returns "/home/bob/bin/untabify"
info1.size();               // returns 56201
info1.symLinkTarget();      // returns "/opt/pretty++/bin/untabify"

QFileInfo info2(info1.symLinkTarget());
info2.isSymLink();          // returns false
info2.absoluteFilePath();   // returns "/opt/pretty++/bin/untabify"
info2.size();               // returns 56201

#endif

En Windows, los accesos directos (archivos.lnk ) se tratan actualmente como enlaces simbólicos. Al igual que en los sistemas Unix, los obtenedores de propiedades devuelven el tamaño del destino, no del propio archivo .lnk. Este comportamiento es obsoleto y probablemente será eliminado en una futura versión de Qt, después de lo cual los archivos .lnk serán tratados como archivos normales.

#ifdef Q_OS_WIN

QFileInfo info1("C:\\Users\\Bob\\untabify.lnk");
info1.isSymLink();          // returns true
info1.absoluteFilePath();   // returns "C:/Users/Bob/untabify.lnk"
info1.size();               // returns 63942
info1.symLinkTarget();      // returns "C:/Pretty++/untabify"

QFileInfo info2(info1.symLinkTarget());
info2.isSymLink();          // returns false
info2.absoluteFilePath();   // returns "C:/Pretty++/untabify"
info2.size();               // returns 63942

#endif

Permisos NTFS

En los sistemas de archivos NTFS, la comprobación de la propiedad y los permisos está desactivada por defecto por razones de rendimiento. Para activarla, incluya la siguiente línea:

extern Q_CORE_EXPORT int qt_ntfs_permission_lookup;

La comprobación de permisos se activa y desactiva incrementando y disminuyendo qt_ntfs_permission_lookup en 1.

qt_ntfs_permission_lookup++; // turn checking on
qt_ntfs_permission_lookup--; // turn it off again

Nota: Dado que se trata de una variable global no atómica, sólo es seguro incrementar o decrementar qt_ntfs_permission_lookup antes de que cualquier hilo distinto del hilo principal se haya iniciado o después de que cada hilo distinto del hilo principal haya finalizado.

Nota: A partir de Qt 6.6 la variable qt_ntfs_permission_lookup está obsoleta. Por favor, utiliza las siguientes alternativas.

La forma segura y fácil de gestionar las comprobaciones de permisos es usar la clase RAII QNtfsPermissionCheckGuard.

void complexFunction()
{
    QNtfsPermissionCheckGuard permissionGuard;  // check is enabled

    // do complex things here that need permission check enabled

}   // as the guard goes out of scope the check is disabled

Si necesita un control más fino, es posible gestionar el permiso con las siguientes funciones en su lugar:

qAreNtfsPermissionChecksEnabled(); // comprobar estadoqEnableNtfsPermissionChecks();       // turn checking on
qDisableNtfsPermissionChecks();      // turn it off again

Consideraciones de rendimiento

Algunas de las funciones de QFileInfo tienen que consultar el sistema de ficheros, pero por razones de rendimiento, algunas funciones sólo operan sobre la cadena de ruta. Por ejemplo: Para devolver la ruta absoluta de una entrada relativa, absolutePath() tiene que consultar el sistema de ficheros. La función path(), sin embargo, puede trabajar directamente sobre el nombre del fichero, por lo que es más rápida.

QFileInfo también almacena en caché información sobre la entrada del sistema de ficheros a la que hace referencia. Dado que el sistema de ficheros puede ser modificado por otros usuarios o programas, o incluso por otras partes del mismo programa, existe una función que refresca la información almacenada en QFileInfo, a saber, refresh(). Para desactivar el almacenamiento en caché de un QFileInfo (es decir, forzarlo a consultar el sistema de ficheros subyacente cada vez que le pidas información), llama a setCaching(false).

La obtención de información del sistema de ficheros se hace normalmente llamando a funciones del sistema (posiblemente) caras, por lo que QFileInfo (dependiendo de la implementación) podría no obtener toda la información del sistema de ficheros en la construcción. Para asegurarte de que toda la información es leída del sistema de ficheros inmediatamente, usa la función miembro stat().

birthTime(), fileTime(), lastModified(), lastRead(), y metadataChangeTime() devuelven por defecto las horas en hora local. Dado que la API nativa del sistema de archivos suele utilizar UTC, esto requiere una conversión. Si no necesitas la hora local, puedes evitarlo solicitando la hora en QTimeZone::UTC directamente.

Problemas específicos de la plataforma

En Android, se aplican algunas limitaciones al tratar con URIs de contenido:

Véase también QDir y QFile.

Documentación de funciones miembro

QFileInfo::QFileInfo()

Construye un objeto QFileInfo vacío que no hace referencia a ninguna entrada del sistema de ficheros.

Ver también setFile().

[explicit] QFileInfo::QFileInfo(const QFileDevice &file)

Construye un nuevo QFileInfo que da información sobre el fichero file.

Si file tiene una ruta relativa, el QFileInfo también tendrá una ruta relativa.

Vea tambien isRelative().

[explicit] QFileInfo::QFileInfo(const QString &path)

Construye un QFileInfo que da información sobre una entrada del sistema de ficheros localizada en path que puede ser absoluta o relativa.

Si path es relativo, el QFileInfo también tendrá una ruta relativa.

Ver también setFile(), isRelative(), QDir::setCurrent(), y QDir::isRelativePath().

[since 6.0] QFileInfo::QFileInfo(const std::filesystem::path &file)

Construye un nuevo QFileInfo que da información sobre el file dado.

Esta función fue introducida en Qt 6.0.

Ver también setFile(), isRelative(), QDir::setCurrent(), y QDir::isRelativePath().

[explicit] QFileInfo::QFileInfo(const QDir &dir, const QString &path)

Construye un nuevo QFileInfo que proporciona información sobre la entrada del sistema de ficheros path relativa al directorio dir.

Si dir tiene una ruta relativa, el QFileInfo también tendrá una ruta relativa.

Si path es absoluto, entonces el directorio especificado por dir será ignorado.

Véase también isRelative().

[since 6.0] QFileInfo::QFileInfo(const QDir &dir, const std::filesystem::path &path)

Construye un nuevo QFileInfo que da información sobre la entrada del sistema de ficheros en path que es relativa al directorio dir.

Si dir tiene una ruta relativa, el QFileInfo también tendrá una ruta relativa.

Si path es absoluto, entonces el directorio especificado por dir será ignorado.

Esta función se introdujo en Qt 6.0.

QFileInfo::QFileInfo(const QFileInfo &fileinfo)

Construye un nuevo QFileInfo que es una copia del dado fileinfo.

[noexcept] QFileInfo::~QFileInfo()

Destruye la QFileInfo y libera sus recursos.

QDir QFileInfo::absoluteDir() const

Devuelve un objeto QDir que representa la ruta absoluta del directorio padre de la entrada del sistema de archivos a la que hace referencia este QFileInfo.

// Dado un directorio de trabajo actual de "/home/usuario/Documentos/memos/"QFileInfo info1(u"relativeFile"_s);qDebug() << info1.absolutePath(); // "/home/user/Documents/memos/"
qDebug() << info1.baseName(); // "relativeFile"
qDebug() << info1.absoluteDir(); // QDir(u"/home/user/Documents/memos"_s)
qDebug() << info1.absoluteDir().path(); // "/home/user/Documents/memos"

// Un QFileInfo en un dirQFileInfo info2(u"/home/usuario/Documentos/memos"_s);qDebug() << info2.absolutePath(); // "/home/user/Documents"
qDebug() << info2.baseName(); // "memos"
qDebug() << info2.absoluteDir(); // QDir(u"/home/user/Documents"_s)
qDebug() << info2.absoluteDir().path(); // "/home/user/Documents"

Véase también dir(), filePath(), fileName() y isRelative().

QString QFileInfo::absoluteFilePath() const

Devuelve la ruta completa absoluta a la entrada del sistema de archivos a la que hace referencia este QFileInfo, incluido el nombre de la entrada.

En Unix, las rutas absolutas comienzan con el separador de directorios '/'. En Windows, las rutas absolutas comienzan con una especificación de unidad (por ejemplo, D:/).

En Windows, las rutas de los recursos compartidos de red que no están asignados a una letra de unidad comienzan por //sharename/.

QFileInfo pondrá en mayúsculas las letras de las unidades. Tenga en cuenta que QDir no hace esto. El fragmento de código siguiente lo muestra.

    QFileInfo fi("c:/temp/foo");    qDebug() << fi.absoluteFilePath(); // "C:/temp/foo"

Esta función devuelve lo mismo que filePath(), a menos que isRelative() sea verdadero. A diferencia de canonicalFilePath(), los enlaces simbólicos o los elementos "." o ".." redundantes no se eliminan necesariamente.

Atención: Si filePath() está vacío, el comportamiento de esta función es indefinido.

Véase también filePath(), canonicalFilePath() y isRelative().

QString QFileInfo::absolutePath() const

Devuelve la ruta absoluta de la entrada del sistema de archivos a la que hace referencia este QFileInfo, excluyendo el nombre de la entrada.

En Unix, las rutas absolutas comienzan con el separador de directorios '/'. En Windows, las rutas absolutas comienzan con una especificación de unidad (por ejemplo, D:/).

En Windows, las rutas de los recursos compartidos de red que no están asignados a una letra de unidad comienzan por //sharename/.

A diferencia de canonicalPath(), los enlaces simbólicos o los elementos "." o ".." redundantes no se eliminan necesariamente.

Advertencia: Si filePath() está vacío, el comportamiento de esta función es indefinido.

Véase también absoluteFilePath(), path(), canonicalPath(), fileName() y isRelative().

QString QFileInfo::baseName() const

Devuelve el nombre base del archivo sin la ruta.

El nombre base está formado por todos los caracteres del archivo hasta (pero sin incluir) el primer carácter '.'.

Ejemplo:

QFileInfo fi("/tmp/archive.tar.gz");
QString base = fi.baseName();  // base = "archive"

El nombre base de un archivo se calcula por igual en todas las plataformas, independientemente de las convenciones de nomenclatura de archivos (por ejemplo, ".bashrc" en Unix tiene un nombre base vacío, y el sufijo es "bashrc").

Véase también fileName(), suffix(), completeSuffix() y completeBaseName().

QDateTime QFileInfo::birthTime() const

Devuelve la fecha y hora de creación (nacimiento) del archivo, en hora local.

Si la hora de nacimiento del archivo no está disponible, esta función devuelve un valor no válido QDateTime.

Si el fichero es un enlace simbólico, esta función devuelve información sobre el destino, no sobre el enlace simbólico.

Esta función sobrecarga QFileInfo::birthTime(const QTimeZone &tz), y devuelve lo mismo que birthTime(QTimeZone::LocalTime).

Ver también lastModified(), lastRead(), metadataChangeTime(), y fileTime().

[since 6.6] QDateTime QFileInfo::birthTime(const QTimeZone &tz) const

Devuelve la fecha y hora en que se creó (nació) el archivo.

La hora devuelta está en la zona horaria especificada por tz. Por ejemplo, puede utilizar QTimeZone::LocalTime o QTimeZone::UTC para obtener la hora en la zona horaria Local o UTC, respectivamente. Dado que la API nativa del sistema de archivos suele utilizar UTC, el uso de QTimeZone::UTC suele ser más rápido, ya que no requiere ninguna conversión.

Si la hora de nacimiento del archivo no está disponible, esta función devuelve un QDateTime inválido.

Si el archivo es un enlace simbólico, esta función devuelve información sobre el destino, no sobre el enlace simbólico.

Esta función se introdujo en Qt 6.6.

Ver también lastModified(const QTimeZone &), lastRead(const QTimeZone &), metadataChangeTime(const QTimeZone &), y fileTime(QFileDevice::FileTime, const QTimeZone &).

QString QFileInfo::bundleName() const

Devuelve el nombre del paquete.

En macOS e iOS devuelve el nombre localizado adecuado para un paquete si la ruta isBundle(). En el resto de plataformas se devuelve un QString vacío.

Ejemplo:

QFileInfo fi("/Applications/Safari.app");
QString bundle = fi.bundleName();                // name = "Safari"

Véase también isBundle(), filePath(), baseName() y suffix().

bool QFileInfo::caching() const

Devuelve true si el almacenamiento en caché está activado; en caso contrario, devuelve false.

Véase también setCaching() y refresh().

QString QFileInfo::canonicalFilePath() const

Devuelve la ruta canónica de la entrada del sistema de archivos, incluido el nombre de la entrada, es decir, una ruta absoluta sin enlaces simbólicos ni elementos redundantes de '.' o '..'.

Si la entrada no existe, canonicalFilePath() devuelve una cadena vacía.

Véase también filePath(), absoluteFilePath() y dir().

QString QFileInfo::canonicalPath() const

Devuelve la ruta canónica de la entrada del sistema de archivos (excluyendo el nombre de la entrada), es decir, una ruta absoluta sin enlaces simbólicos ni elementos "." o ".." redundantes.

Si la entrada no existe, este método devuelve una cadena vacía.

Véase también path() y absolutePath().

QString QFileInfo::completeBaseName() const

Devuelve el nombre base completo del archivo sin la ruta.

El nombre base completo consta de todos los caracteres del archivo hasta (pero sin incluir) el último carácter '.'.

Ejemplo:

QFileInfo fi("/tmp/archive.tar.gz");
QString base = fi.completeBaseName();  // base = "archive.tar"

Véase también fileName(), suffix(), completeSuffix() y baseName().

QString QFileInfo::completeSuffix() const

Devuelve el sufijo completo (extensión) del archivo.

El sufijo completo consiste en todos los caracteres del archivo después (pero sin incluir) el primer '.'.

Ejemplo:

QFileInfo fi("/tmp/archive.tar.gz");
QString ext = fi.completeSuffix();  // ext = "tar.gz"

Véase también fileName(), suffix(), baseName() y completeBaseName().

QDir QFileInfo::dir() const

Devuelve un objeto QDir que representa la ruta del directorio padre de la entrada del sistema de ficheros a la que hace referencia este QFileInfo.

Nota: El QDir devuelto siempre corresponde al directorio padre del objeto, incluso si el QFileInfo representa un directorio.

Para cada uno de los siguientes casos, dir() devuelve el QDir "~/examples/191697" .

    QFileInfo fileInfo1("~/examples/191697/.");
    QFileInfo fileInfo2("~/examples/191697/..");
    QFileInfo fileInfo3("~/examples/191697/main.cpp");

Para cada una de las siguientes, dir() devuelve el QDir "." .

    QFileInfo fileInfo4(".");
    QFileInfo fileInfo5("..");
    QFileInfo fileInfo6("main.cpp");

Véase también absolutePath(), filePath(), fileName(), isRelative() y absoluteDir().

bool QFileInfo::exists() const

Devuelve true si la entrada del sistema de ficheros a la que hace referencia este QFileInfo existe; en caso contrario devuelve false.

Nota: Si la entrada es un enlace simbólico que apunta a un destino inexistente, este método devuelve false.

[static] bool QFileInfo::exists(const QString &path)

Devuelve true si la entrada del sistema de ficheros path existe; en caso contrario devuelve false.

Nota: Si path es un enlace simbólico que apunta a un destino inexistente, este método devuelve false.

Nota: El uso de esta función es más rápido que el uso de QFileInfo(path).exists() para el acceso al sistema de archivos.

QString QFileInfo::fileName() const

Devuelve el nombre de la entrada del sistema de archivos a la que se refiere este QFileInfo, excluyendo la ruta.

Ejemplo:

QFileInfo fi("/tmp/archive.tar.gz");
QString name = fi.fileName();                // name = "archive.tar.gz"

Nota: Si a este QFileInfo se le da una ruta que termina con un separador de directorio '/', la parte del nombre de la entrada se considera vacía.

Véase también isRelative(), filePath(), baseName() y suffix().

QString QFileInfo::filePath() const

Devuelve la ruta de la entrada del sistema de archivos a la que se refiere este QFileInfo; la ruta puede ser absoluta o relativa.

Véase también absoluteFilePath(), canonicalFilePath() y isRelative().

QDateTime QFileInfo::fileTime(QFileDevice::FileTime time) const

Devuelve la hora del archivo especificada por time.

Si no se puede determinar la hora, se devuelve una fecha-hora no válida.

Si el fichero es un enlace simbólico, esta función devuelve información sobre el destino, no sobre el enlace simbólico.

Esta función sobrecarga QFileInfo::fileTime(QFileDevice::FileTime, const QTimeZone &), y devuelve lo mismo que fileTime(time, QTimeZone::LocalTime).

Ver también birthTime(), lastModified(), lastRead(), y metadataChangeTime().

[since 6.6] QDateTime QFileInfo::fileTime(QFileDevice::FileTime time, const QTimeZone &tz) const

Devuelve la hora del archivo especificada por time.

La hora devuelta está en la zona horaria especificada por tz. Por ejemplo, puede utilizar QTimeZone::LocalTime o QTimeZone::UTC para obtener la hora en la zona horaria Local o UTC, respectivamente. Dado que la API nativa del sistema de archivos suele utilizar UTC, el uso de QTimeZone::UTC suele ser más rápido, ya que no requiere ninguna conversión.

Si no se puede determinar la hora, se devuelve una fecha/hora no válida.

Si el archivo es un enlace simbólico, esta función devuelve información sobre el destino, no sobre el enlace simbólico.

Esta función se introdujo en Qt 6.6.

Ver también birthTime(const QTimeZone &), lastModified(const QTimeZone &), lastRead(const QTimeZone &), metadataChangeTime(const QTimeZone &), y QDateTime::isValid().

[since 6.0] std::filesystem::path QFileInfo::filesystemAbsoluteFilePath() const

Devuelve absoluteFilePath() como std::filesystem::path.

Esta función se introdujo en Qt 6.0.

Véase también absoluteFilePath().

[since 6.0] std::filesystem::path QFileInfo::filesystemAbsolutePath() const

Devuelve absolutePath() como std::filesystem::path.

Esta función se introdujo en Qt 6.0.

Véase también absolutePath().

[since 6.0] std::filesystem::path QFileInfo::filesystemCanonicalFilePath() const

Devuelve canonicalFilePath() como std::filesystem::path.

Esta función se introdujo en Qt 6.0.

Véase también canonicalFilePath().

[since 6.0] std::filesystem::path QFileInfo::filesystemCanonicalPath() const

Devuelve canonicalPath() como std::filesystem::path.

Esta función se introdujo en Qt 6.0.

Véase también canonicalPath().

[since 6.0] std::filesystem::path QFileInfo::filesystemFilePath() const

Devuelve filePath() como std::filesystem::path.

Esta función se introdujo en Qt 6.0.

Véase también filePath().

[since 6.2] std::filesystem::path QFileInfo::filesystemJunctionTarget() const

Devuelve junctionTarget() como std::filesystem::path.

Esta función se introdujo en Qt 6.2.

Véase también junctionTarget().

[since 6.0] std::filesystem::path QFileInfo::filesystemPath() const

Devuelve path() como std::filesystem::path.

Esta función se introdujo en Qt 6.0.

Véase también path().

Devuelve readSymLink() como std::filesystem::path.

Esta función se introdujo en Qt 6.6.

Véase también readSymLink().

[since 6.0] std::filesystem::path QFileInfo::filesystemSymLinkTarget() const

Devuelve symLinkTarget() como std::filesystem::path.

Esta función se introdujo en Qt 6.0.

Véase también symLinkTarget().

QString QFileInfo::group() const

Devuelve el grupo del fichero. En Windows, en sistemas donde los archivos no tienen grupos, o si se produce un error, se devuelve una cadena vacía.

Esta función puede consumir mucho tiempo en Unix (del orden de milisegundos).

Si el fichero es un enlace simbólico, esta función devuelve información sobre el destino, no sobre el enlace simbólico.

Véase también groupId(), owner(), y ownerId().

uint QFileInfo::groupId() const

Devuelve el id del grupo al que pertenece el fichero.

En Windows y en sistemas donde los archivos no tienen grupos, esta función siempre devuelve (uint) -2.

Si el fichero es un enlace simbólico, esta función devuelve información sobre el destino, no sobre el enlace simbólico.

Véase también group(), owner(), y ownerId().

bool QFileInfo::isAbsolute() const

Devuelve true si la ruta de la entrada del sistema de archivos es absoluta; en caso contrario, devuelve false (es decir, la ruta es relativa).

Nota: Las rutas que comienzan con dos puntos (:) siempre se consideran absolutas, ya que denotan un QResource.

Véase también isRelative().

[since 6.4] bool QFileInfo::isAlias() const

Devuelve true si este objeto apunta a un alias; en caso contrario devuelve false.

Los alias sólo existen en macOS. Se tratan como archivos normales, por lo que al abrir un alias se abrirá el propio archivo. Para abrir el archivo o directorio al que hace referencia un alias, utilice symLinkTarget().

Nota: Incluso si un alias apunta a un archivo no existente, isAlias() devuelve true.

Esta función se introdujo en Qt 6.4.

Véase también isFile(), isDir(), isSymLink(), y symLinkTarget().

bool QFileInfo::isBundle() const

Devuelve true si este objeto apunta a un bundle o a un enlace simbólico a un bundle en macOS e iOS; en caso contrario devuelve false.

Si el archivo es un enlace simbólico, esta función devuelve información sobre el destino, no sobre el enlace simbólico.

Véase también isDir(), isSymLink() y isFile().

bool QFileInfo::isDir() const

Devuelve true si este objeto apunta a un directorio o a un enlace simbólico a un directorio. Devuelve false si el objeto apunta a algo que no es un directorio (como un archivo) o que no existe.

Si el fichero es un enlace simbólico, esta función devuelve información sobre el destino, no sobre el enlace simbólico.

Véase también isFile(), isSymLink() y isBundle().

bool QFileInfo::isExecutable() const

Devuelve true si la entrada del sistema de ficheros a la que se refiere QFileInfo es ejecutable; en caso contrario devuelve false.

Si el fichero es un enlace simbólico, esta función devuelve información sobre el destino, no sobre el enlace simbólico.

Véase también isReadable(), isWritable(), y permission().

bool QFileInfo::isFile() const

Devuelve true si este objeto apunta a un archivo o a un enlace simbólico a un archivo. Devuelve false si el objeto apunta a algo que no es un archivo (como un directorio) o que no existe.

Si el fichero es un enlace simbólico, esta función devuelve información sobre el destino, no sobre el enlace simbólico.

Véase también isDir(), isSymLink() y isBundle().

bool QFileInfo::isHidden() const

Devuelve true si la entrada del sistema de ficheros a la que se refiere QFileInfo está `oculta'; en caso contrario devuelve false.

Nota: Esta función devuelve true para las entradas especiales "." y ".." en Unix, aunque QDir::entryList las trata como se muestra. Y tenga en cuenta que, puesto que esta función inspecciona el nombre del fichero, en Unix inspeccionará el nombre del enlace simbólico, si este fichero es un enlace simbólico, no el nombre del destino.

En Windows, esta función devuelve true si el archivo de destino está oculto (no el enlace simbólico).

bool QFileInfo::isJunction() const

Devuelve true si el objeto apunta a una unión; en caso contrario devuelve false.

Las uniones sólo existen en el sistema de ficheros NTFS de Windows, y normalmente se crean con el comando mklink. Pueden considerarse como enlaces simbólicos para directorios, y sólo pueden crearse para rutas absolutas en el volumen local.

bool QFileInfo::isNativePath() const

Devuelve true si la ruta del archivo se puede utilizar directamente con las API nativas. Devuelve false si el archivo está soportado por un sistema de archivos virtual dentro de Qt, como el Qt Resource System.

Nota: Las rutas nativas pueden requerir la conversión de los separadores de ruta y la codificación de caracteres, dependiendo de la plataforma y los requisitos de entrada de la API nativa.

Véase también QDir::toNativeSeparators(), QFile::encodeName(), filePath(), absoluteFilePath(), y canonicalFilePath().

[since 6.10] bool QFileInfo::isOther() const

Devuelve true si este QFileInfo se refiere a una entrada del sistema de archivos que no es un directorio, archivo regular o enlace simbólico. En caso contrario, devuelve false.

Si este QFileInfo se refiere a una entrada inexistente, este método devuelve false.

Si la entrada es un enlace simbólico colgante (el destino no existe), este método devuelve false. Para un enlace simbólico no colgante, esta función devuelve información sobre el destino, no sobre el enlace simbólico.

En Unix, una entrada especial (otra) del sistema de ficheros es un FIFO, un socket, un dispositivo de caracteres o un dispositivo de bloques. Para más detalles, consulte la página mknod página del manual.

En Windows (por razones históricas, véase Symbolic Links and Shortcuts) este método devuelve true para archivos .lnk.

Esta función se introdujo en Qt 6.10.

Véase también isDir(), isFile(), isSymLink(), y QDirListing::IteratorFlag::ExcludeOther.

bool QFileInfo::isReadable() const

Devuelve true si el usuario puede leer la entrada del sistema de archivos a la que se refiere este QFileInfo; en caso contrario devuelve false.

Si el archivo es un enlace simbólico, esta función devuelve información sobre el destino, no sobre el enlace simbólico.

Nota: Si no se ha activado la comprobación NTFS permissions, el resultado en Windows reflejará simplemente si la entrada existe.

Véase también isWritable(), isExecutable(), y permission().

bool QFileInfo::isRelative() const

Devuelve true si la ruta de la entrada del sistema de archivos es relativa; en caso contrario, devuelve false (es decir, la ruta es absoluta).

En Unix, las rutas absolutas comienzan con el separador de directorios '/'. En Windows, las rutas absolutas comienzan con una especificación de unidad (por ejemplo, D:/).

Nota: Las rutas que comienzan con dos puntos (:) siempre se consideran absolutas, ya que denotan un QResource.

Véase también isAbsolute().

bool QFileInfo::isRoot() const

Devuelve true si el objeto apunta a un directorio o a un enlace simbólico a un directorio, y ese directorio es el directorio raíz; en caso contrario devuelve false.

bool QFileInfo::isShortcut() const

Devuelve true si este objeto apunta a un acceso directo; en caso contrario devuelve false.

Los accesos directos sólo existen en Windows y suelen ser archivos .lnk. Por ejemplo, se devolverá true para los accesos directos (archivos*.lnk ) en Windows, pero se devolverá false en Unix (incluyendo macOS e iOS).

Los archivos de acceso directo (.lnk) se tratan como archivos normales. Al abrirlos, se abrirá el propio archivo .lnk. Para abrir el archivo al que hace referencia un acceso directo, debe utilizar symLinkTarget() en un acceso directo.

Nota: Incluso si un acceso directo (broken shortcut) apunta a un archivo no existente, isShortcut() devuelve true.

Véase también isFile(), isDir(), isSymbolicLink() y symLinkTarget().

Devuelve true si este objeto apunta a un enlace simbólico, acceso directo o alias; en caso contrario devuelve false.

Los enlaces simbólicos existen en Unix (incluidos macOS e iOS) y Windows y suelen crearse mediante los comandos ln -s o mklink, respectivamente. Al abrir un enlace simbólico, se abre link's target.

Además, se devolverá true para los accesos directos (archivos*.lnk ) en Windows, y alias en macOS. Este comportamiento es obsoleto y probablemente cambiará en una futura versión de Qt. Al abrir un acceso directo o alias se abrirá el propio archivo .lnk o alias.

Ejemplo:

QFileInfo info(fileName);
if (info.isSymLink())
    fileName = info.symLinkTarget();

Nota: exists() devuelve true si el enlace simbólico apunta a un objetivo existente, en caso contrario devuelve false.

Véase también isFile(), isDir(), y symLinkTarget().

Devuelve true si este objeto apunta a un enlace simbólico; en caso contrario devuelve false.

Los enlaces simbólicos existen en Unix (incluidos macOS e iOS) y Windows (NTFS-symlink) y suelen crearse mediante los comandos ln -s o mklink, respectivamente.

Unix maneja los enlaces simbólicos de forma transparente. Al abrir un enlace simbólico, se abre el comando link's target.

A diferencia de isSymLink(), se devolverá false para los accesos directos (archivos*.lnk ) en Windows y los alias en macOS. Utilice QFileInfo::isShortcut() y QFileInfo::isAlias() en su lugar.

Nota: exists() devuelve true si el enlace simbólico apunta a un destino existente, en caso contrario devuelve false.

Véase también isFile(), isDir(), isShortcut() y symLinkTarget().

bool QFileInfo::isWritable() const

Devuelve true si el usuario puede escribir en la entrada del sistema de archivos a la que se refiere este QFileInfo; en caso contrario devuelve false.

Si el archivo es un enlace simbólico, esta función devuelve información sobre el destino, no sobre el enlace simbólico.

Nota: Si no se ha activado la comprobación NTFS permissions, el resultado en Windows reflejará simplemente si la entrada está marcada como Sólo lectura.

Véase también isReadable(), isExecutable(), y permission().

[since 6.2] QString QFileInfo::junctionTarget() const

Resuelve una unión NTFS a la ruta a la que hace referencia.

Devuelve la ruta absoluta al directorio al que apunta una unión NTFS, o una cadena vacía si el objeto no es una unión NTFS.

No hay garantía de que el directorio nombrado por la unión NTFS exista realmente.

Esta función se introdujo en Qt 6.2.

Véase también isJunction(), isFile(), isDir(), isSymLink(), isSymbolicLink(), y isShortcut().

QDateTime QFileInfo::lastModified() const

Devuelve la fecha y hora de la última modificación del archivo.

Si el fichero es un enlace simbólico, esta función devuelve información sobre el destino, no sobre el enlace simbólico.

Esta función sobrecarga QFileInfo::lastModified(const QTimeZone &), y devuelve lo mismo que lastModified(QTimeZone::LocalTime).

Véase también birthTime(), lastRead(), metadataChangeTime(), y fileTime().

[since 6.6] QDateTime QFileInfo::lastModified(const QTimeZone &tz) const

Devuelve la fecha y hora de la última modificación del archivo.

La hora devuelta está en la zona horaria especificada por tz. Por ejemplo, puede utilizar QTimeZone::LocalTime o QTimeZone::UTC para obtener la hora en la zona horaria Local o UTC, respectivamente. Dado que la API nativa del sistema de archivos suele utilizar UTC, el uso de QTimeZone::UTC suele ser más rápido, ya que no requiere ninguna conversión.

Si el fichero es un enlace simbólico, esta función devuelve información sobre el destino, no sobre el enlace simbólico.

Esta función se introdujo en Qt 6.6.

Ver también birthTime(const QTimeZone &), lastRead(const QTimeZone &), metadataChangeTime(const QTimeZone &), y fileTime(QFileDevice::FileTime, const QTimeZone &).

QDateTime QFileInfo::lastRead() const

Devuelve la fecha y hora de la última lectura (acceso) del archivo.

En plataformas donde esta información no está disponible, devuelve la misma hora que lastModified().

Si el fichero es un enlace simbólico, esta función devuelve información sobre el destino, no sobre el enlace simbólico.

Esta función sobrecarga QFileInfo::lastRead(const QTimeZone &), y devuelve lo mismo que lastRead(QTimeZone::LocalTime).

Véase también birthTime(), lastModified(), metadataChangeTime(), y fileTime().

[since 6.6] QDateTime QFileInfo::lastRead(const QTimeZone &tz) const

Devuelve la fecha y hora de la última lectura (acceso) del archivo.

La hora devuelta está en la zona horaria especificada por tz. Por ejemplo, puede utilizar QTimeZone::LocalTime o QTimeZone::UTC para obtener la hora en la zona horaria Local o UTC, respectivamente. Dado que la API nativa del sistema de archivos suele utilizar UTC, el uso de QTimeZone::UTC suele ser más rápido, ya que no requiere ninguna conversión.

En plataformas donde esta información no está disponible, devuelve la misma hora que lastModified().

Si el archivo es un enlace simbólico, esta función devuelve información sobre el destino, no sobre el enlace simbólico.

Esta función se introdujo en Qt 6.6.

Ver también birthTime(const QTimeZone &), lastModified(const QTimeZone &), metadataChangeTime(const QTimeZone &), y fileTime(QFileDevice::FileTime, const QTimeZone &).

bool QFileInfo::makeAbsolute()

Si la ruta de la entrada del sistema de archivos es relativa, este método la convierte en una ruta absoluta y devuelve true; si la ruta ya es absoluta, este método devuelve false.

Véase también filePath() y isRelative().

QDateTime QFileInfo::metadataChangeTime() const

Devuelve la fecha y hora en que se modificaron por última vez los metadatos del archivo, en hora local.

Un cambio de metadatos se produce cuando el archivo se crea por primera vez, pero también se produce siempre que el usuario escribe o establece la información del inodo (por ejemplo, cambiando los permisos del archivo).

Si el fichero es un enlace simbólico, esta función devuelve información sobre el destino, no sobre el enlace simbólico.

Esta función sobrecarga QFileInfo::metadataChangeTime(const QTimeZone &tz), y devuelve lo mismo que metadataChangeTime(QTimeZone::LocalTime).

Ver también birthTime(), lastModified(), lastRead(), y fileTime().

[since 6.6] QDateTime QFileInfo::metadataChangeTime(const QTimeZone &tz) const

Devuelve la fecha y hora en que se modificaron por última vez los metadatos del archivo. Un cambio de metadatos se produce cuando el archivo se crea por primera vez, pero también se produce siempre que el usuario escribe o establece la información del inodo (por ejemplo, cambiando los permisos del archivo).

La hora devuelta está en la zona horaria especificada por tz. Por ejemplo, puede utilizar QTimeZone::LocalTime o QTimeZone::UTC para obtener la hora en la zona horaria Local o UTC, respectivamente. Dado que la API nativa del sistema de archivos suele utilizar UTC, el uso de QTimeZone::UTC suele ser más rápido, ya que no requiere ninguna conversión.

Si el fichero es un enlace simbólico, esta función devuelve información sobre el destino, no sobre el enlace simbólico.

Esta función se introdujo en Qt 6.6.

Ver también birthTime(const QTimeZone &), lastModified(const QTimeZone &), lastRead(const QTimeZone &), y fileTime(QFileDevice::FileTime time, const QTimeZone &).

QString QFileInfo::owner() const

Devuelve el propietario del fichero. En sistemas donde los ficheros no tienen propietario, o si se produce un error, se devuelve una cadena vacía.

Esta función puede llevar mucho tiempo en Unix (del orden de milisegundos). En Windows, devolverá una cadena vacía a menos que se haya activado la comprobación NTFS permissions.

Si el archivo es un enlace simbólico, esta función devuelve información sobre el destino, no sobre el enlace simbólico.

Véase también ownerId(), group() y groupId().

uint QFileInfo::ownerId() const

Devuelve el id del propietario del fichero.

En Windows y en sistemas donde los archivos no tienen propietario, esta función devuelve ((uint) -2).

Si el fichero es un enlace simbólico, esta función devuelve información sobre el destino, no sobre el enlace simbólico.

Véase también owner(), group(), y groupId().

QString QFileInfo::path() const

Devuelve la ruta de la entrada del sistema de archivos a la que hace referencia este QFileInfo, excluyendo el nombre de la entrada.

Nota: Si a este QFileInfo se le da una ruta que termina con un separador de directorio '/', la parte del nombre de la entrada se considera vacía. En este caso, esta función devolverá la ruta completa.

Véase también filePath(), absolutePath(), canonicalPath(), dir(), fileName() y isRelative().

bool QFileInfo::permission(QFileDevice::Permissions permissions) const

Comprueba los permisos del archivo. El argumento permissions puede ser varias banderas de tipo QFile::Permissions OR-ed together para comprobar las combinaciones de permisos.

En sistemas donde los archivos no tienen permisos esta función siempre devuelve true.

Nota: El resultado puede ser impreciso en Windows si no se ha activado la comprobación NTFS permissions.

Ejemplo:

QFileInfo fi("/tmp/archivo.tar.gz");if (fi.permission(QFile::EscribirUsuario | QFile::LeerGrupo))    qWarning("I can change the file; my group can read the file");
si (fi.permission(QFile::EscribirGrupo | QFile::EscribirOtro))    qWarning("The group or others can change the file");

Si el fichero es un enlace simbólico, esta función devuelve información sobre el destino, no sobre el enlace simbólico.

Véase también isReadable(), isWritable() y isExecutable().

QFileDevice::Permissions QFileInfo::permissions() const

Devuelve la combinación completa OR-ed together de QFile::Permissions para el archivo.

Nota: El resultado puede ser impreciso en Windows si no se ha activado la comprobación NTFS permissions.

Si el fichero es un enlace simbólico, esta función devuelve información sobre el destino, no sobre el enlace simbólico.

Lee la ruta a la que hace referencia el enlace simbólico.

Devuelve la ruta sin procesar a la que hace referencia el enlace simbólico, sin resolver una ruta relativa al directorio que contiene el enlace simbólico. La cadena devuelta sólo será una ruta absoluta si el enlace simbólico hace referencia a ella como tal. Devuelve una cadena vacía si el objeto no es un enlace simbólico.

Esta función se introdujo en Qt 6.6.

Véase también symLinkTarget(), exists(), isSymLink(), isDir(), y isFile().

void QFileInfo::refresh()

Actualiza la información sobre la entrada del sistema de archivos a la que hace referencia este QFileInfo, es decir, lee información del sistema de archivos la próxima vez que se obtiene una propiedad en caché.

void QFileInfo::setCaching(bool enable)

Si enable es verdadero, habilita el almacenamiento en caché de la información del archivo. Si enable es falso, se desactiva el almacenamiento en caché.

Cuando el almacenamiento en caché está activado, QFileInfo lee la información del archivo del sistema de archivos la primera vez que se necesita, pero generalmente no más tarde.

El almacenamiento en caché está activado por defecto.

Véase también refresh() y caching().

void QFileInfo::setFile(const QString &path)

Establece la ruta de la entrada del sistema de archivos sobre la que este QFileInfo proporciona información en path que puede ser absoluta o relativa.

En Unix, las rutas absolutas comienzan con el separador de directorios '/'. En Windows, las rutas absolutas comienzan con una especificación de unidad (por ejemplo, D:/).

Las rutas relativas comienzan con un nombre de directorio o un nombre de archivo normal y especifican la ruta de una entrada del sistema de archivos relativa al directorio de trabajo actual.

Ejemplo:

QFileInfo info("/usr/bin/env");

QString path = info.absolutePath(); // path = /usr/bin
QString base = info.baseName(); // base = env

info.setFile("/etc/hosts");

path = info.absolutePath(); // path = /etc
base = info.baseName(); // base = hosts

Véase también isFile(), isRelative(), QDir::setCurrent() y QDir::isRelativePath().

[since 6.0] void QFileInfo::setFile(const std::filesystem::path &path)

Establece la ruta de la entrada del sistema de archivos sobre la que este QFileInfo proporciona información en path.

Si path es relativa, QFileInfo también tendrá una ruta relativa.

Esta función se introdujo en Qt 6.0.

void QFileInfo::setFile(const QFileDevice &file)

Establece el archivo sobre el que QFileInfo proporciona información en file.

Si file incluye una ruta relativa, QFileInfo también tendrá una ruta relativa.

Se trata de una función sobrecargada.

Véase también isRelative().

void QFileInfo::setFile(const QDir &dir, const QString &path)

Establece la ruta de la entrada del sistema de archivos sobre la que este QFileInfo proporciona información en path en el directorio dir.

Si dir tiene una ruta relativa, QFileInfo también tendrá una ruta relativa.

Si path es absoluta, no se tendrá en cuenta el directorio especificado por dir.

Esta es una función sobrecargada.

Véase también isRelative().

qint64 QFileInfo::size() const

Devuelve el tamaño del archivo en bytes. Si el archivo no existe o no se puede obtener, se devuelve 0.

Si el archivo es un enlace simbólico, esta función devuelve información sobre el destino, no sobre el enlace simbólico.

Véase también exists().

[since 6.0] void QFileInfo::stat()

Lee todos los atributos del sistema de archivos.

Esto es útil cuando la información sobre el sistema de archivos se recopila en un subproceso de trabajo, y luego se pasa a la interfaz de usuario en forma de instancias de almacenamiento en caché QFileInfo.

Esta función se introdujo en Qt 6.0.

Véase también setCaching() y refresh().

QString QFileInfo::suffix() const

Devuelve el sufijo (extensión) del archivo.

El sufijo está formado por todos los caracteres del archivo después (pero sin incluir) del último '.'.

Ejemplo:

QFileInfo fi("/tmp/archive.tar.gz");
QString ext = fi.suffix();  // ext = "gz"

El sufijo de un archivo se calcula por igual en todas las plataformas, independientemente de las convenciones de nomenclatura de archivos (por ejemplo, ".bashrc" en Unix tiene un nombre base vacío, y el sufijo es "bashrc").

Véase también fileName(), completeSuffix(), baseName() y completeBaseName().

[noexcept] void QFileInfo::swap(QFileInfo &other)

Intercambia esta información de archivo con other. Esta operación es muy rápida y nunca falla.

QString QFileInfo::symLinkTarget() const

Devuelve la ruta absoluta al archivo o directorio al que apunta un enlace simbólico, o una cadena vacía si el objeto no es un enlace simbólico.

Este nombre no puede representar un archivo existente; es sólo una cadena.

Nota: exists() devuelve true si el enlace simbólico apunta a un objetivo existente, en caso contrario devuelve false.

Véase también exists(), isSymLink(), isDir() y isFile().

[noexcept] QFileInfo &QFileInfo::operator=(QFileInfo &&other)

Mover-asigna other a esta instancia QFileInfo.

QFileInfo &QFileInfo::operator=(const QFileInfo &fileinfo)

Hace una copia del fileinfo dado y lo asigna a este QFileInfo.

No miembros relacionados

QFileInfoList

Sinónimo de QList<QFileInfo>.

[noexcept] bool operator!=(const QFileInfo &lhs, const QFileInfo &rhs)

Devuelve true si QFileInfo lhs se refiere a una entrada del sistema de ficheros diferente a la referenciada por rhs; en caso contrario devuelve false.

Véase también operator==().

[noexcept] bool operator==(const QFileInfo &lhs, const QFileInfo &rhs)

Devuelve true si QFileInfo lhs y QFileInfo rhs hacen referencia a la misma entrada en el sistema de archivos; en caso contrario devuelve false.

Tenga en cuenta que el resultado de comparar dos objetos QFileInfo vacíos, que no contengan referencias a entradas del sistema de ficheros (rutas que no existen o están vacías), es indefinido.

Advertencia: Esto no comparará dos enlaces simbólicos diferentes que apunten al mismo objetivo.

Advertencia: En Windows, las rutas largas y cortas que hacen referencia a la misma entrada del sistema de archivos se tratan como si hicieran referencia a entradas diferentes.

Véase también operator!=().

Documentación de macros

[since 6.0] QT_IMPLICIT_QFILEINFO_CONSTRUCTION

Definir esta macro hace que la mayoría de los constructores de QFileInfo sean implícitos en lugar de explícitos. Dado que la construcción de objetos QFileInfo es costosa, debería evitarse crearlos accidentalmente, especialmente si existen alternativas más baratas. Por ejemplo:

QDirIterator it(dir);
while (it.hasNext()) {
    // Implicit conversion from QString (returned by it.next()):
    // may create unnecessary data structures and cause additional
    // accesses to the file system. Unless this macro is defined,
    // this line does not compile.

    QFileInfo fi = it.next();

    ~~~
}

En su lugar, utilice la API adecuada:

QDirIterator it(dir);
while (it.hasNext()) {
    // Extract the QFileInfo from the iterator directly:
    QFileInfo fi = it.nextFileInfo();

    ~~~
}

La construcción desde QString, QFile, y así sucesivamente es siempre posible usando inicialización directa en lugar de inicialización por copia:

QFileInfo fi1 = some_string; // Does not compile unless this macro is defined
QFileInfo fi2(some_string);  // OK
QFileInfo fi3{some_string};  // Possibly better, avoids the risk of the Most Vexing Parse
auto fi4 = QFileInfo(some_string); // OK

Esta macro se proporciona por razones de compatibilidad. No se recomienda su uso en código nuevo.

Esta macro se introdujo en Qt 6.0.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.