Класс QFileInfo
Класс QFileInfo предоставляет информацию о файлах, независимую от операционной системы. Подробнее...
| Заголовок: | #include <QFileInfo> |
| qmake: | QT += core |
Примечание: Все функции в этом классе являются реентерабельными.
Публичные функции
| QFileInfo(const QFileInfo &fileinfo) | |
| QFileInfo(const QDir &dir, const QString &file) | |
| QFileInfo(const QFile &file) | |
| QFileInfo(const QString &file) | |
| QFileInfo() | |
| QFileInfo & | operator=(QFileInfo &&other) |
| QFileInfo & | operator=(const QFileInfo &fileinfo) |
| ~QFileInfo() | |
| QDir | absoluteDir() const |
| QString | absoluteFilePath() const |
| QString | absolutePath() const |
| QString | baseName() const |
| QDateTime | birthTime() 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(QFile::FileTime time) const |
| QString | group() const |
| uint | groupId() const |
| bool | isAbsolute() const |
| bool | isBundle() const |
| bool | isDir() const |
| bool | isExecutable() const |
| bool | isFile() const |
| bool | isHidden() const |
| bool | isJunction() const |
| bool | isNativePath() const |
| bool | isReadable() const |
| bool | isRelative() const |
| bool | isRoot() const |
| bool | isShortcut() const |
| bool | isSymLink() const |
| bool | isSymbolicLink() const |
| bool | isWritable() const |
| QDateTime | lastModified() const |
| QDateTime | lastRead() const |
| bool | makeAbsolute() |
| QDateTime | metadataChangeTime() const |
| QString | owner() const |
| uint | ownerId() const |
| QString | path() const |
| bool | permission(QFile::Permissions permissions) const |
| QFile::Permissions | permissions() const |
| void | refresh() |
| void | setCaching(bool enable) |
| void | setFile(const QString &file) |
| void | setFile(const QFile &file) |
| void | setFile(const QDir &dir, const QString &file) |
| qint64 | size() const |
| QString | suffix() const |
| void | swap(QFileInfo &other) |
| QString | symLinkTarget() const |
| bool | operator!=(const QFileInfo &fileinfo) const |
| bool | operator==(const QFileInfo &fileinfo) const |
Статические публичные члены
| bool | exists(const QString &file) |
Связанные нечлены
| typedef | QFileInfoList |
Подробное описание
QFileInfo предоставляет информацию о имени и пути файла в файловой системе, правах доступа и является ли он каталогом или символической ссылкой и т. д. Также доступны размер файла и время последнего изменения/чтения. QFileInfo также может использоваться для получения информации о Qt ресурсе.
QFileInfo может указывать на файл с относительным или абсолютным путем к файлу. Абсолютные пути начинаются с разделителя каталогов "/" (или с указания диска в Windows). Относительные имена файлов начинаются с имени каталога или имени файла и указывают путь относительно текущего рабочего каталога. Пример абсолютного пути — строка "/tmp/quartz". Относительный путь может выглядеть как "src/fatlib". Вы можете использовать функцию isRelative(), чтобы проверить, использует ли QFileInfo относительный или абсолютный путь к файлу. Вы можете вызвать функцию makeAbsolute(), чтобы преобразовать относительный путь QFileInfo в абсолютный.
Файл, с которым работает QFileInfo, устанавливается в конструкторе или позднее с помощью setFile(). Используйте exists(), чтобы проверить, существует ли файл, и size(), чтобы получить его размер.
Тип файла получается с помощью isFile(), isDir() и isSymLink(). Функция symLinkTarget() предоставляет имя файла, на который указывает символическая ссылка.
В Unix (включая macOS и iOS) функции-получатели свойств в этом классе возвращают свойства, такие как время и размер целевого файла, а не символической ссылки, потому что Unix обрабатывает символические ссылки прозрачно. Открытие символической ссылки с помощью QFile фактически открывает целевой файл ссылки. Например:
#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 В Windows ярлыки (.lnk файлы) в настоящее время обрабатываются как символические ссылки. Как и в системах Unix, функции-получатели свойств возвращают размер целевого файла, а не .lnk файл сам по себе. Это поведение устарело и, вероятно, будет удалено в будущих версиях Qt, после чего .lnk файлы будут обрабатываться как обычные файлы.
#ifdef Q_OS_WIN
QFileInfo info1("C:\\Documents and Settings\\Bob\\untabify.lnk");
info1.isSymLink(); // returns true
info1.absoluteFilePath(); // returns "C:/Documents and Settings/Bob/untabify.lnk"
info1.size(); // returns 743
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 Элементы имени файла могут быть извлечены с помощью path() и fileName(). Части имени файла могут быть извлечены с помощью baseName(), suffix() или completeSuffix(). Объекты QFileInfo для каталогов, созданных классами Qt, не будут иметь конечного разделителя файла. Если вы хотите использовать конечные разделители в собственных объектах информации о файлах, просто добавьте его к имени файла, предоставленному в конструкторах или setFile().
Даты файла возвращаются функциями birthTime(), lastModified(), lastRead() и fileTime(). Информация о правах доступа к файлу получается с помощью isReadable(), isWritable() и isExecutable(). Владение файлом доступно из owner(), ownerId(), group() и groupId(). Вы можете проверить права доступа и владение файлом в одном операторе, используя функцию permission().
Примечание: В файловых системах NTFS проверка прав владения и доступа отключена по умолчанию по соображениям производительности. Чтобы включить её, добавьте следующую строку:
extern Q_CORE_EXPORT int qt_ntfs_permission_lookup;
Проверка разрешений затем включается и выключается путем увеличения и уменьшения qt_ntfs_permission_lookup на 1.
qt_ntfs_permission_lookup++; // turn checking on qt_ntfs_permission_lookup--; // turn it off again
Проблемы производительности
Некоторые функции QFileInfo обращаются к файловой системе, но по соображениям производительности некоторые функции работают только с самим именем файла. Например: чтобы вернуть абсолютный путь относительного имени файла, absolutePath() должна обращаться к файловой системе. Функция path(), однако, может работать непосредственно с именем файла, поэтому она быстрее.
Примечание: Для повышения производительности QFileInfo кэширует информацию о файле.
Поскольку файлы могут быть изменены другими пользователями или программами, или даже другими частями одной и той же программы, существует функция, которая обновляет информацию о файле: refresh(). Если вы хотите отключить кэширование QFileInfo и каждый раз обращаться к файловой системе при запросе информации из него, вызовите setCaching(false).
Документация по функциям членов
QFileInfo::QFileInfo(const QFileInfo &fileinfo)
Создаёт новый QFileInfo, являющийся копией данного fileinfo.
QFileInfo::QFileInfo(const QDir &dir, const QString &file)
Создаёт новый QFileInfo, предоставляющий информацию о данном file в каталоге dir.
Если dir имеет относительный путь, QFileInfo также будет иметь относительный путь.
Если file имеет абсолютный путь, то каталог, указанный dir, будет проигнорирован.
См. также isRelative().
QFileInfo::QFileInfo(const QFile &file)
Создаёт новый QFileInfo, предоставляющий информацию о файле file.
Если file имеет относительный путь, QFileInfo также будет иметь относительный путь.
См. также isRelative().
QFileInfo::QFileInfo(const QString &file)
Создаёт новый QFileInfo, предоставляющий информацию о данном файле. file может также содержать абсолютный или относительный путь.
См. также setFile(), isRelative(), QDir::setCurrent() и QDir::isRelativePath().
QFileInfo::QFileInfo()
Создаёт пустой объект QFileInfo.
Обратите внимание, что пустой объект QFileInfo не содержит ссылки на файл.
См. также setFile().
QFileInfo &QFileInfo::operator=(QFileInfo &&other)
Перемещает other в этот экземпляр QFileInfo.
Эта функция была добавлена в Qt 5.2.
QFileInfo &QFileInfo::operator=(const QFileInfo &fileinfo)
Создаёт копию данного fileinfo и присваивает её этому QFileInfo.
QFileInfo::~QFileInfo()
Удаляет QFileInfo и освобождает его ресурсы.
QDir QFileInfo::absoluteDir() const
Возвращает абсолютный путь к файлу как объект QDir.
См. также dir(), filePath(), fileName() и isRelative().
QString QFileInfo::absoluteFilePath() const
Возвращает абсолютный путь, включая имя файла.
Абсолютный путь состоит из полного пути и имени файла. В Unix он всегда начинается с корневого каталога «/». В Windows он всегда начинается с «D:/», где D — буква диска, за исключением сетевых общих ресурсов, которые не сопоставлены с буквой диска, в этом случае путь начинается с «//sharename/». QFileInfo преобразует буквы дисков в верхний регистр. Обратите внимание, что QDir этого не делает. Приведенный ниже фрагмент кода демонстрирует это.
QFileInfo fi("c:/temp/foo"); => fi.absoluteFilePath() => "C:/temp/foo" Эта функция возвращает то же, что и filePath(), за исключением случая, когда isRelative() равно true. В отличие от canonicalFilePath(), символические ссылки или избыточные элементы «.» или «..» не обязательно удаляются.
Предупреждение: Если filePath() пусто, поведение этой функции не определено.
См. также filePath(), canonicalFilePath() и isRelative().
QString QFileInfo::absolutePath() const
Возвращает абсолютный путь к файлу. Он не включает имя файла.
В Unix абсолютный путь всегда начинается с корневого каталога «/». В Windows он всегда начинается с «D:/», где D — буква диска, за исключением сетевых общих ресурсов, которые не сопоставлены с буквой диска, в этом случае путь начинается с «//sharename/».
В отличие от canonicalPath() символические ссылки или избыточные элементы «.» или «..» не обязательно удаляются.
Предупреждение: Если filePath() пусто, поведение этой функции не определено.
См. также absoluteFilePath(), path(), canonicalPath(), fileName() и isRelative().
QString QFileInfo::baseName() const
Возвращает базовая имя файла без пути.
Базовое имя состоит из всех символов в файле до (но не включая) первого символа «.».
Пример:
QFileInfo fi("/tmp/archive.tar.gz");
QString base = fi.baseName(); // base = "archive" Базовое имя файла вычисляется одинаково на всех платформах, независимо от соглашений об именовании файлов (например, «.bashrc» в Unix имеет пустое базовое имя, а суффикс — «bashrc»).
См. также fileName(), suffix(), completeSuffix() и completeBaseName().
QDateTime QFileInfo::birthTime() const
Возвращает дату и время создания файла.
Если время создания файла недоступно, эта функция возвращает недействительный объект QDateTime.
Если файл является символической ссылкой, возвращается время создания целевого файла (а не символической ссылки).
Эта функция была добавлена в Qt 5.10.
См. также lastModified(), lastRead() и metadataChangeTime().
QString QFileInfo::bundleName() const
Возвращает имя пакета.
В macOS и iOS возвращает соответствующее локализованное имя пакета, если путь isBundle(). Во всех остальных платформах возвращается пустая строка QString.
Пример:
QFileInfo fi("/Applications/Safari.app");
QString bundle = fi.bundleName(); // name = "Safari" Эта функция была добавлена в Qt 4.3.
См. также isBundle(), filePath(), baseName() и suffix().
bool QFileInfo::caching() const
Возвращает true если кэширование включено; в противном случае возвращает false.
См. также setCaching() и refresh().
QString QFileInfo::canonicalFilePath() const
Возвращает канонический путь, включая имя файла, т.е. абсолютный путь без символических ссылок и избыточных элементов "." или "..".
Если файл не существует, canonicalFilePath() возвращает пустую строку.
См. также filePath(), absoluteFilePath() и dir().
QString QFileInfo::canonicalPath() const
Возвращает канонический путь к файлу (исключая имя файла), т.е. абсолютный путь без символических ссылок и избыточных элементов "." или "..".
Если файл не существует, canonicalPath() возвращает пустую строку.
См. также path() и absolutePath().
QString QFileInfo::completeBaseName() const
Возвращает полное имя базового файла без пути.
Полное имя базового файла состоит из всех символов в имени файла до (но не включая) последнего символа ".".
Пример:
QFileInfo fi("/tmp/archive.tar.gz");
QString base = fi.completeBaseName(); // base = "archive.tar" См. также fileName(), suffix(), completeSuffix() и baseName().
QString QFileInfo::completeSuffix() const
Возвращает полное расширение файла.
Полное расширение состоит из всех символов в имени файла после (но не включая) первого символа ".".
Пример:
QFileInfo fi("/tmp/archive.tar.gz");
QString ext = fi.completeSuffix(); // ext = "tar.gz" См. также fileName(), suffix(), baseName() и completeBaseName().
QDir QFileInfo::dir() const
Возвращает путь к родительскому каталогу в виде объекта QDir.
Примечание: Возвращаемый объект QDir всегда соответствует родительскому каталогу, даже если QFileInfo представляет собой каталог.
Для каждого из следующих случаев dir() возвращает объект QDir "~/examples/191697".
QFileInfo fileInfo1("~/examples/191697/.");
QFileInfo fileInfo2("~/examples/191697/..");
QFileInfo fileInfo3("~/examples/191697/main.cpp"); Для каждого из следующих случаев dir() возвращает объект QDir ".".
QFileInfo fileInfo4(".");
QFileInfo fileInfo5("..");
QFileInfo fileInfo6("main.cpp"); См. также absolutePath(), filePath(), fileName(), isRelative() и absoluteDir().
bool QFileInfo::exists() const
Возвращает true если файл существует; в противном случае возвращает false.
Примечание: Если файл является символической ссылкой, которая указывает на несуществующий файл, возвращается false.
[static] bool QFileInfo::exists(const QString &file)
Возвращает true если файл file существует; в противном случае возвращает false.
Примечание: Если file является символической ссылкой, которая указывает на несуществующий файл, возвращается false.
Примечание: Использование этой функции быстрее, чем использование QFileInfo(file).exists() для доступа к файловой системе.
Эта функция была добавлена в Qt 5.2.
QString QFileInfo::fileName() const
Возвращает имя файла, исключая путь.
Пример:
QFileInfo fi("/tmp/archive.tar.gz");
QString name = fi.fileName(); // name = "archive.tar.gz" Обратите внимание, что если у этого объекта QFileInfo путь заканчивается на слеш, имя файла считается пустым.
См. также isRelative(), filePath(), baseName() и suffix().
QString QFileInfo::filePath() const
Возвращает имя файла, включая путь (который может быть абсолютным или относительным).
См. также absoluteFilePath(), canonicalFilePath() и isRelative().
QDateTime QFileInfo::fileTime(QFile::FileTime time) const
Возвращает время файла, заданное параметром time. Если время определить невозможно, возвращается недействительная дата и время.
Если файл является символической ссылкой, возвращается время создания целевого файла (а не символической ссылки).
Эта функция была добавлена в Qt 5.10.
См. также QFile::FileTime и QDateTime::isValid().
QString QFileInfo::group() const
Возвращает группу файла. В Windows, на системах, где у файлов нет групп, или если произошла ошибка, возвращается пустая строка.
Эта функция может быть длительной под Unix (порядка миллисекунд).
Если файл является символической ссылкой, возвращается группа владельца целевого файла (а не символической ссылки).
См. также groupId(), owner() и ownerId().
uint QFileInfo::groupId() const
Возвращает идентификатор группы, к которой принадлежит файл.
В Windows и на системах, где у файлов нет групп, эта функция всегда возвращает (uint) -2.
Если файл является символической ссылкой, возвращается идентификатор группы владельца целевого файла (а не символической ссылки).
См. также group(), owner() и ownerId().
bool QFileInfo::isAbsolute() const
Возвращает true если путь к файлу абсолютный, в противном случае возвращает false, если путь относительный.
См. также isRelative().
bool QFileInfo::isBundle() const
Возвращает true если этот объект указывает на пакет или символическую ссылку на пакет в macOS и iOS; в противном случае возвращает false.
Если файл является символической ссылкой, эта функция возвращает true, если целевой объект является пакетом (а не символической ссылкой).
Эта функция была добавлена в Qt 4.3.
См. также isDir(), isSymLink() и isFile().
bool QFileInfo::isDir() const
Возвращает true если этот объект указывает на каталог или символическую ссылку на каталог; в противном случае возвращает false.
Если файл является символической ссылкой, эта функция возвращает true, если целевой объект является каталогом (а не символической ссылкой).
См. также isFile(), isSymLink() и isBundle().
bool QFileInfo::isExecutable() const
Возвращает true если файл исполняемый; в противном случае возвращает false.
Если файл является символической ссылкой, эта функция возвращает true, если целевой объект исполняемый (а не символическая ссылка).
См. также isReadable(), isWritable() и permission().
bool QFileInfo::isFile() const
Возвращает true если этот объект указывает на файл или символическую ссылку на файл. Возвращает false если объект указывает на элемент, который не является файлом, например, каталог.
Если файл является символической ссылкой, эта функция возвращает true, если целевой объект является обычным файлом (а не символической ссылкой).
См. также isDir(), isSymLink() и isBundle().
bool QFileInfo::isHidden() const
Возвращает true если это `скрытый' файл; в противном случае возвращает false.
Примечание: Эта функция возвращает true для специальных записей "." и ".." в Unix, хотя QDir::entryList обрабатывает их, как показано. И обратите внимание, что, поскольку эта функция проверяет имя файла, в Unix она будет проверять имя символической ссылки, если этот файл является символической ссылкой, а не имя целевого файла.
В Windows эта функция возвращает true если целевой файл скрыт (а не символическая ссылка).
bool QFileInfo::isJunction() const
Возвращает true если объект указывает на соединение; в противном случае возвращает false.
Соединения существуют только в файловой системе NTFS Windows и обычно создаются командой mklink. Они могут рассматриваться как символические ссылки для каталогов и могут создаваться только для абсолютных путей на локальном томе.
Эта функция была добавлена в Qt 5.15.
bool QFileInfo::isNativePath() const
Возвращает true если путь к файлу может быть использован непосредственно с помощью системных API. Возвращает false если файл иначе поддерживается виртуальной файловой системой внутри Qt, такой как система ресурсов Qt.
Примечание: Пути нативного типа могут потребовать преобразования разделителей путей и кодировки символов в зависимости от платформы и требований системных API.
Эта функция была добавлена в Qt 5.0.
См. также QDir::toNativeSeparators(), QFile::encodeName(), filePath(), absoluteFilePath(), и canonicalFilePath().
bool QFileInfo::isReadable() const
Возвращает true если пользователь может читать файл; в противном случае возвращает false.
Если файл является символической ссылкой, эта функция возвращает true, если целевой файл доступен для чтения (а не сама ссылка).
Примечание: Если проверка NTFS-разрешений не включена, результат в Windows будет просто отражать наличие файла.
См. также isWritable(), isExecutable() и permission().
bool QFileInfo::isRelative() const
Возвращает true если имя пути файла является относительным, в противном случае возвращает false, если путь является абсолютным (например, в Unix путь является абсолютным, если он начинается с "/").
См. также isAbsolute().
bool QFileInfo::isRoot() const
Возвращает true если объект указывает на каталог или символическую ссылку на каталог, и этот каталог является корневым каталогом; в противном случае возвращает false.
bool QFileInfo::isShortcut() const
Возвращает true если этот объект указывает на ярлык; в противном случае возвращает false.
Ярлыки существуют только в Windows и обычно представляют собой файлы .lnk. Например, true будет возвращено для ярлыков (файлы *.lnk в Windows), но false будет возвращено в Unix (включая macOS и iOS).
Файлы ярлыков (.lnk) обрабатываются как обычные файлы. Открытие таких файлов откроет сам файл .lnk. Для того, чтобы открыть файл, на который ссылается ярлык, необходимо использовать symLinkTarget() на ярлыке.
Примечание: Даже если ярлык (нерабочий ярлык) указывает на несуществующий файл, isShortcut() возвращает true.
См. также isFile(), isDir(), isSymbolicLink() и symLinkTarget().
bool QFileInfo::isSymLink() const
Возвращает true если этот объект указывает на символическую ссылку или ярлык; в противном случае возвращает false.
Символические ссылки существуют в Unix (включая macOS и iOS) и Windows и обычно создаются командами ln -s или mklink соответственно. Открытие символической ссылки фактически открывает цель ссылки.
Кроме того, для ярлыков (файлы *.lnk в Windows) также будет возвращено true. Это поведение устарело и, вероятно, изменится в будущей версии Qt. Открытие таких файлов откроет сам файл .lnk.
Пример:
QFileInfo info(fileName);
if (info.isSymLink())
fileName = info.symLinkTarget(); Примечание: Если символическая ссылка указывает на несуществующий файл, exists() возвращает false.
См. также isFile(), isDir() и symLinkTarget().
bool QFileInfo::isSymbolicLink() const
Возвращает true если этот объект указывает на символическую ссылку; в противном случае возвращает false.
Символические ссылки существуют в Unix (включая macOS и iOS) и Windows (NTFS-символическая ссылка) и обычно создаются командами ln -s или mklink соответственно.
Unix прозрачно обрабатывает символические ссылки. Открытие символической ссылки фактически открывает цель ссылки.
В отличие от isSymLink(), для ярлыков (файлы *.lnk в Windows) будет возвращено false. Используйте QFileInfo::isShortcut() вместо этого.
Примечание: Если символическая ссылка указывает на несуществующий файл, exists() возвращает false.
См. также isFile(), isDir(), isShortcut() и symLinkTarget().
bool QFileInfo::isWritable() const
Возвращает true если пользователь может записывать в файл; в противном случае возвращает false.
Если файл является символической ссылкой, эта функция возвращает true, если целевой файл доступен для записи (а не сама ссылка).
Примечание: Если проверка NTFS-разрешений не включена, результат в Windows будет просто отражать, помечен ли файл как «Только чтение».
См. также isReadable(), isExecutable() и permission().
QDateTime QFileInfo::lastModified() const
Возвращает дату и локальное время последнего изменения файла.
Если файл является символической ссылкой, возвращается время изменения целевого файла (а не самой ссылки).
См. также birthTime(), lastRead(), metadataChangeTime() и fileTime().
QDateTime QFileInfo::lastRead() const
Возвращает дату и локальное время последнего чтения (доступа) к файлу.
На платформах, где эта информация недоступна, возвращает то же, что и lastModified().
Если файл является символической ссылкой, возвращается время изменения целевого файла (а не самой ссылки).
См. также birthTime(), lastModified(), metadataChangeTime() и fileTime().
bool QFileInfo::makeAbsolute()
Преобразует путь файла в абсолютный путь, если он не находится в этом формате. Возвращает true для обозначения того, что путь был преобразован; в противном случае возвращает false для обозначения того, что путь уже был абсолютным.
См. также filePath() и isRelative().
QDateTime QFileInfo::metadataChangeTime() const
Возвращает дату и время изменения метаданных файла. Изменение метаданных происходит при создании файла, но также происходит всякий раз, когда пользователь записывает или устанавливает информацию об индексном узле (например, изменяет права доступа к файлу).
Если файл является символической ссылкой, возвращается время изменения целевого файла (а не самой ссылки).
Эта функция была добавлена в Qt 5.10.
См. также lastModified() и lastRead().
QString QFileInfo::owner() const
Возвращает владельца файла. На системах, где файлы не имеют владельцев, или при возникновении ошибки, возвращается пустая строка.
Эта функция может быть длительной при работе с Unix (в порядке миллисекунд). В Windows она вернёт пустую строку, если не включена проверка NTFS-разрешений.
Если файл является символической ссылкой, эта функция возвращает владельца целевого файла (а не самой ссылки).
См. также ownerId(), group() и groupId().
uint QFileInfo::ownerId() const
Возвращает идентификатор владельца файла.
В Windows и на системах, где файлы не имеют владельцев, эта функция возвращает ((uint) -2).
Если файл является символической ссылкой, эта функция возвращает идентификатор владельца целевого файла (а не самой ссылки).
См. также owner(), group() и groupId().
QString QFileInfo::path() const
Возвращает путь к файлу. Он не включает имя файла.
Обратите внимание, что, если этому объекту QFileInfo передается путь, заканчивающийся слешем, имя файла считается пустым, и эта функция вернёт весь путь.
См. также filePath(), absolutePath(), canonicalPath(), dir(), fileName() и isRelative().
bool QFileInfo::permission(QFile::Permissions permissions) const
Проверяет разрешения файла. Аргумент permissions может быть несколькими флагами типа QFile::Permissions, объединёнными оператором OR для проверки комбинаций разрешений.
На системах, где файлы не имеют разрешений, эта функция всегда возвращает true.
Примечание: Результат может быть неточным в Windows, если проверка разрешений NTFS не была включена.
Пример:
QFileInfo fi("/tmp/archive.tar.gz");
if (fi.permission(QFile::WriteUser | QFile::ReadGroup))
qWarning("I can change the file; my group can read the file");
if (fi.permission(QFile::WriteGroup | QFile::WriteOther))
qWarning("The group or others can change the file"); Если файл является символической ссылкой, эта функция проверяет разрешения целевого файла (а не символической ссылки).
См. также isReadable(), isWritable() и isExecutable().
QFile::Permissions QFileInfo::permissions() const
Возвращает полное значение, полученное путем побитового ИЛИ всех разрешений QFile::Permissions для файла.
Примечание: Результат может быть неточным в Windows, если проверка разрешений NTFS не была включена.
Если файл является символической ссылкой, эта функция возвращает разрешения целевого файла (а не символической ссылки).
void QFileInfo::refresh()
Обновляет информацию о файле, т.е. считывает информацию с файловой системы при следующем обращении к кэшированному свойству.
void QFileInfo::setCaching(bool enable)
Если enable имеет значение true, включает кэширование информации о файле. Если enable имеет значение false, кэширование отключается.
При включенном кэшировании QFileInfo считывает информацию о файле из файловой системы только при первом обращении, но обычно не позднее.
Кэширование включено по умолчанию.
См. также refresh() и caching().
void QFileInfo::setFile(const QString &file)
Устанавливает файл, о котором QFileInfo предоставляет информацию, на file.
file может также содержать абсолютный или относительный путь к файлу. Абсолютные пути начинаются с разделителя каталогов (например, "/" под Unix) или спецификации диска (под Windows). Относительные имена файлов начинаются с имени каталога или имени файла и указывают путь относительно текущего каталога.
Пример:
QString absolute = "/local/bin";
QString relative = "local/bin";
QFileInfo absFile(absolute);
QFileInfo relFile(relative);
QDir::setCurrent(QDir::rootPath());
// absFile and relFile now point to the same file
QDir::setCurrent("/tmp");
// absFile now points to "/local/bin",
// while relFile points to "/tmp/local/bin" См. также isFile(), isRelative(), QDir::setCurrent() и QDir::isRelativePath().
void QFileInfo::setFile(const QFile &file)
Это перегруженная функция.
Устанавливает файл, о котором QFileInfo предоставляет информацию, на file.
Если file включает относительный путь, у QFileInfo также будет относительный путь.
См. также isRelative().
void QFileInfo::setFile(const QDir &dir, const QString &file)
Это перегруженная функция.
Устанавливает файл, о котором QFileInfo предоставляет информацию, на file в каталоге dir.
Если file включает относительный путь, у QFileInfo также будет относительный путь.
См. также isRelative().
qint64 QFileInfo::size() const
Возвращает размер файла в байтах. Если файл не существует или не может быть получен, возвращается 0.
Если файл является символической ссылкой, возвращается размер целевого файла (а не символической ссылки).
См. также exists().
QString QFileInfo::suffix() const
Возвращает суффикс (расширение) файла.
Суффикс состоит из всех символов в имени файла после (но не включая) последней точки ".".
Пример:
QFileInfo fi("/tmp/archive.tar.gz");
QString ext = fi.suffix(); // ext = "gz" Суффикс файла вычисляется одинаково на всех платформах, независимо от соглашений об именах файлов (например, ".bashrc" под Unix имеет пустое имя файла, и суффикс равен "bashrc").
См. также fileName(), completeSuffix(), baseName() и completeBaseName().
void QFileInfo::swap(QFileInfo &other)
Меняет местами информацию о данном файле и other. Эта функция очень быстрая и никогда не завершается с ошибкой.
Эта функция была добавлена в Qt 5.0.
QString QFileInfo::symLinkTarget() const
Возвращает абсолютный путь к файлу или каталогу, на который указывает символическая ссылка, или пустую строку, если объект не является символической ссылкой.
Это имя может не соответствовать существующему файлу; это только строка. QFileInfo::exists() возвращает true если символическая ссылка указывает на существующий файл.
Эта функция была добавлена в Qt 4.2.
См. также exists(), isSymLink(), isDir() и isFile().
bool QFileInfo::operator!=(const QFileInfo &fileinfo) const
Возвращает true если объект QFileInfo ссылается на другой файл, чем тот, который указан в fileinfo; в противном случае возвращает false.
См. также operator==().
bool QFileInfo::operator==(const QFileInfo &fileinfo) const
Возвращает true если объект QFileInfo ссылается на файл в том же месте, что и fileinfo; в противном случае возвращает false.
Обратите внимание, что результат сравнения двух пустых объектов QFileInfo, не содержащих ссылок на файлы (пути к файлам, которые не существуют или пустые), не определен.
Предупреждение: Это не сравнит две разные символические ссылки, указывающие на один и тот же файл.
Предупреждение: Длинные и короткие имена файлов, которые ссылаются на один и тот же файл в Windows, обрабатываются так, как будто они ссылаются на разные файлы.
См. также operator!=().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qfileinfo.html