Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
src_corelib_io_qfileinfo.cpp
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
3
4#include <QDir>
5#include <QFileInfo>
6
7using namespace Qt::StringLiterals;
8
9[[maybe_unused]] static void func()
10{
11{
13 QFileInfo fi("c:/temp/foo");
14 qDebug() << fi.absoluteFilePath(); // "C:/temp/foo"
16}
17
18{
20#ifdef Q_OS_UNIX
21
22QFileInfo info1("/home/bob/bin/untabify");
23info1.isSymLink(); // returns true
24info1.absoluteFilePath(); // returns "/home/bob/bin/untabify"
25info1.size(); // returns 56201
26info1.symLinkTarget(); // returns "/opt/pretty++/bin/untabify"
27
28QFileInfo info2(info1.symLinkTarget());
29info2.isSymLink(); // returns false
30info2.absoluteFilePath(); // returns "/opt/pretty++/bin/untabify"
31info2.size(); // returns 56201
32
33#endif
35}
36
38#ifdef Q_OS_WIN
39
40QFileInfo info1("C:\\Users\\Bob\\untabify.lnk");
41info1.isSymLink(); // returns true
42info1.absoluteFilePath(); // returns "C:/Users/Bob/untabify.lnk"
43info1.size(); // returns 63942
44info1.symLinkTarget(); // returns "C:/Pretty++/untabify"
45
46QFileInfo info2(info1.symLinkTarget());
47info2.isSymLink(); // returns false
48info2.absoluteFilePath(); // returns "C:/Pretty++/untabify"
49info2.size(); // returns 63942
50
51#endif
53
54{
56QFileInfo info("/usr/bin/env");
57
58QString path = info.absolutePath(); // path = /usr/bin
59QString base = info.baseName(); // base = env
60
61info.setFile("/etc/hosts");
62
63path = info.absolutePath(); // path = /etc
64base = info.baseName(); // base = hosts
66}
67
68{
70QFileInfo fi("/tmp/archive.tar.gz");
71QString name = fi.fileName(); // name = "archive.tar.gz"
73}
74
75{
77QFileInfo fi("/Applications/Safari.app");
78QString bundle = fi.bundleName(); // name = "Safari"
80}
81
82{
84QFileInfo fi("/tmp/archive.tar.gz");
85QString base = fi.baseName(); // base = "archive"
87}
88
89{
91QFileInfo fi("/tmp/archive.tar.gz");
92QString base = fi.completeBaseName(); // base = "archive.tar"
94}
95
96{
98QFileInfo fi("/tmp/archive.tar.gz");
99QString ext = fi.completeSuffix(); // ext = "tar.gz"
101}
102
103{
105QFileInfo fi("/tmp/archive.tar.gz");
106QString ext = fi.suffix(); // ext = "gz"
108}
109
110{
111QString fileName = "foo";
114if (info.isSymLink())
115 fileName = info.symLinkTarget();
117}
118
119{
121QFileInfo fi("/tmp/archive.tar.gz");
122if (fi.permission(QFile::WriteUser | QFile::ReadGroup))
123 qWarning("I can change the file; my group can read the file");
124if (fi.permission(QFile::WriteGroup | QFile::WriteOther))
125 qWarning("The group or others can change the file");
127}
128
129{
131// Given a current working directory of "/home/user/Documents/memos/"
132QFileInfo info1(u"relativeFile"_s);
133qDebug() << info1.absolutePath(); // "/home/user/Documents/memos/"
134qDebug() << info1.baseName(); // "relativeFile"
135qDebug() << info1.absoluteDir(); // QDir(u"/home/user/Documents/memos"_s)
136qDebug() << info1.absoluteDir().path(); // "/home/user/Documents/memos"
137
138// A QFileInfo on a dir
139QFileInfo info2(u"/home/user/Documents/memos"_s);
140qDebug() << info2.absolutePath(); // "/home/user/Documents"
141qDebug() << info2.baseName(); // "memos"
142qDebug() << info2.absoluteDir(); // QDir(u"/home/user/Documents"_s)
143qDebug() << info2.absoluteDir().path(); // "/home/user/Documents"
145}
146
147}
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
#define qDebug
[1]
Definition qlogging.h:164
#define qWarning
Definition qlogging.h:166
GLuint name
GLsizei const GLchar *const * path
static const uint base
Definition qurlidna.cpp:20
static void func()
QHostInfo info
[0]