mirror of
https://github.com/crystalidea/qt6windows7.git
synced 2025-07-02 23:35:28 +08:00
qt 6.5.1 original
This commit is contained in:
11
tests/manual/qstorageinfo/CMakeLists.txt
Normal file
11
tests/manual/qstorageinfo/CMakeLists.txt
Normal file
@ -0,0 +1,11 @@
|
||||
# Copyright (C) 2022 The Qt Company Ltd.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
#####################################################################
|
||||
## qstorageinfo Binary:
|
||||
#####################################################################
|
||||
|
||||
qt_internal_add_manual_test(qstorageinfo
|
||||
SOURCES
|
||||
main.cpp
|
||||
)
|
34
tests/manual/qstorageinfo/main.cpp
Normal file
34
tests/manual/qstorageinfo/main.cpp
Normal file
@ -0,0 +1,34 @@
|
||||
// Copyright (C) 2016 Intel Corporation
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||
|
||||
#include <QtCore/QCoreApplication>
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include "printvolumes.cpp"
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
QCoreApplication a(argc, argv);
|
||||
|
||||
QList<QStorageInfo> volumes;
|
||||
QStringList args = a.arguments();
|
||||
args.takeFirst(); // skip application name
|
||||
|
||||
foreach (const QString &path, args) {
|
||||
QStorageInfo info(path);
|
||||
if (!info.isValid()) {
|
||||
// no error string...
|
||||
fprintf(stderr, "Could not get info on %s\n", qPrintable(path));
|
||||
return 1;
|
||||
}
|
||||
volumes << info;
|
||||
}
|
||||
|
||||
if (volumes.isEmpty())
|
||||
volumes = QStorageInfo::mountedVolumes();
|
||||
|
||||
printVolumes(volumes, printf);
|
||||
|
||||
return 0;
|
||||
}
|
32
tests/manual/qstorageinfo/printvolumes.cpp
Normal file
32
tests/manual/qstorageinfo/printvolumes.cpp
Normal file
@ -0,0 +1,32 @@
|
||||
// Copyright (C) 2016 Intel Corporation
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||
|
||||
#include <QtCore/QStorageInfo>
|
||||
|
||||
void printVolumes(const QList<QStorageInfo> &volumes, int (*printer)(const char *, ...))
|
||||
{
|
||||
// Sample output:
|
||||
// Filesystem (Type) Size Available BSize Label Mounted on
|
||||
// /dev/sda2 (ext4) RO 388480 171218 1024 /boot
|
||||
// /dev/mapper/system-root (btrfs) RW
|
||||
// 214958080 39088272 4096 /
|
||||
// /dev/disk1s2 (hfs) RW 488050672 419909696 4096 Macintosh HD2 /Volumes/Macintosh HD2
|
||||
|
||||
printer("Filesystem (Type) Size Available BSize Label Mounted on\n");
|
||||
foreach (const QStorageInfo &info, volumes) {
|
||||
QByteArray fsAndType = info.device();
|
||||
if (info.fileSystemType() != fsAndType)
|
||||
fsAndType += " (" + info.fileSystemType() + ')';
|
||||
|
||||
printer("%-19s R%c ", fsAndType.constData(), info.isReadOnly() ? 'O' : 'W');
|
||||
if (fsAndType.size() > 19)
|
||||
printer("\n%23s", "");
|
||||
|
||||
printer("%10llu %10llu %5u ", info.bytesTotal() / 1024, info.bytesFree() / 1024, info.blockSize());
|
||||
if (!info.subvolume().isEmpty())
|
||||
printer("subvol=%-18s ", qPrintable(info.subvolume()));
|
||||
else
|
||||
printer("%-25s ", qPrintable(info.name()));
|
||||
printer("%s\n", qPrintable(info.rootPath()));
|
||||
}
|
||||
}
|
3
tests/manual/qstorageinfo/qstorageinfo.pro
Normal file
3
tests/manual/qstorageinfo/qstorageinfo.pro
Normal file
@ -0,0 +1,3 @@
|
||||
QT = core
|
||||
CONFIG += cmdline
|
||||
SOURCES += main.cpp
|
Reference in New Issue
Block a user