Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
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{
12//![newstuff]
13 QFileInfo fi("c:/temp/foo");
14 qDebug() << fi.absoluteFilePath(); // "C:/temp/foo"
15//![newstuff]
16}
17
18{
19//! [0]
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
34//! [0]
35}
36
37//! [1]
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
52//! [1]
53
54{
55//! [2]
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
65//! [2]
66}
67
68{
69//! [3]
70QFileInfo fi("/tmp/archive.tar.gz");
71QString name = fi.fileName(); // name = "archive.tar.gz"
72//! [3]
73}
74
75{
76//! [4]
77QFileInfo fi("/Applications/Safari.app");
78QString bundle = fi.bundleName(); // name = "Safari"
79//! [4]
80}
81
82{
83//! [5]
84QFileInfo fi("/tmp/archive.tar.gz");
85QString base = fi.baseName(); // base = "archive"
86//! [5]
87}
88
89{
90//! [6]
91QFileInfo fi("/tmp/archive.tar.gz");
92QString base = fi.completeBaseName(); // base = "archive.tar"
93//! [6]
94}
95
96{
97//! [7]
98QFileInfo fi("/tmp/archive.tar.gz");
99QString ext = fi.completeSuffix(); // ext = "tar.gz"
100//! [7]
101}
102
103{
104//! [8]
105QFileInfo fi("/tmp/archive.tar.gz");
106QString ext = fi.suffix(); // ext = "gz"
107//! [8]
108}
109
110{
111QString fileName = "foo";
112//! [9]
113QFileInfo info(fileName);
114if (info.isSymLink())
115 fileName = info.symLinkTarget();
116//! [9]
117}
118
119{
120//! [10]
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");
126//! [10]
127}
128
129{
130//! [11]
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"
144//! [11]
145}
146
147}
static void func()