该版本可以上传xml文件以及图片到ftp服务器
parent
9e2355e2d5
commit
92d931e56d
Binary file not shown.
Binary file not shown.
@ -1,7 +0,0 @@
|
|||||||
QMAKE_PRL_BUILD_DIR = D:/qtftp-master/qtftp-master/src/qftp
|
|
||||||
QMAKE_PRO_INPUT = qftp.pro
|
|
||||||
QMAKE_PRL_TARGET = Qt5Ftp.lib
|
|
||||||
QMAKE_PRL_CONFIG = lex yacc depend_includepath testcase_targets import_qpa_plugin windows prepare_docs qt_docs_targets qt_build_extra file_copies qmake_use qt warn_on release link_prl flat debug_and_release autogen_precompile_source embed_manifest_dll embed_manifest_exe release no_plugin_manifest win32 msvc copy_dir_files sse2 aesni sse3 ssse3 sse4_1 sse4_2 avx avx2 avx512f avx512bw avx512cd avx512dq avx512er avx512ifma avx512pf avx512vbmi avx512vl compile_examples f16c force_debug_info largefile rdrnd rdseed shani x86SimdAlways prefix_build force_independent utf8_source create_prl link_prl no_private_qt_headers_warning QTDIR_build qt_example_installs exceptions_off testcase_exceptions release ReleaseBuild Release build_pass c++11 release ReleaseBuild Release build_pass staticlib static relative_qt_rpath target_qt c++11 strict_c++ c++14 c++1z qt_install_headers need_fwd_pri qt_install_module debug_and_release build_all create_cmake skip_target_version_ext release ReleaseBuild Release build_pass have_target static staticlib exclusive_builds debug_info no_autoqmake thread moc resources
|
|
||||||
QMAKE_PRL_VERSION = 5.0.0
|
|
||||||
QMAKE_PRL_LIBS = -L\$(QTDIR)\\lib -LC:\\openssl\\lib -LC:\\Utils\\my_sql\\mysql-5.7.25-winx64\\lib -LC:\\Utils\\postgresql\\pgsql\\lib D:/QT/5.15.2/MSVC2019_64/lib/Qt5Network.lib D:/QT/5.15.2/MSVC2019_64/lib/Qt5Core.lib
|
|
||||||
QMAKE_PRL_LIBS_FOR_CMAKE = -L$(QTDIR)\\lib;-LC:\\openssl\\lib;-LC:\\Utils\\my_sql\\mysql-5.7.25-winx64\\lib;-LC:\\Utils\\postgresql\\pgsql\\lib;D:/QT/5.15.2/MSVC2019_64/lib/Qt5Network.lib;D:/QT/5.15.2/MSVC2019_64/lib/Qt5Core.lib;;;
|
|
File diff suppressed because it is too large
Load Diff
@ -1,728 +0,0 @@
|
|||||||
/****************************************************************************
|
|
||||||
**
|
|
||||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
|
||||||
** Contact: http://www.qt-project.org/legal
|
|
||||||
**
|
|
||||||
** This file is part of the QtNetwork module of the Qt Toolkit.
|
|
||||||
**
|
|
||||||
** $QT_BEGIN_LICENSE:LGPL$
|
|
||||||
** Commercial License Usage
|
|
||||||
** Licensees holding valid commercial Qt licenses may use this file in
|
|
||||||
** accordance with the commercial license agreement provided with the
|
|
||||||
** Software or, alternatively, in accordance with the terms contained in
|
|
||||||
** a written agreement between you and Digia. For licensing terms and
|
|
||||||
** conditions see http://qt.digia.com/licensing. For further information
|
|
||||||
** use the contact form at http://qt.digia.com/contact-us.
|
|
||||||
**
|
|
||||||
** GNU Lesser General Public License Usage
|
|
||||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
|
||||||
** General Public License version 2.1 as published by the Free Software
|
|
||||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
|
||||||
** packaging of this file. Please review the following information to
|
|
||||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
|
||||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
|
||||||
**
|
|
||||||
** In addition, as a special exception, Digia gives you certain additional
|
|
||||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
|
||||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
|
||||||
**
|
|
||||||
** GNU General Public License Usage
|
|
||||||
** Alternatively, this file may be used under the terms of the GNU
|
|
||||||
** General Public License version 3.0 as published by the Free Software
|
|
||||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
|
||||||
** packaging of this file. Please review the following information to
|
|
||||||
** ensure the GNU General Public License version 3.0 requirements will be
|
|
||||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
|
||||||
**
|
|
||||||
**
|
|
||||||
** $QT_END_LICENSE$
|
|
||||||
**
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#include "qurlinfo.h"
|
|
||||||
|
|
||||||
#include "qurl.h"
|
|
||||||
#include "qdir.h"
|
|
||||||
#include <limits.h>
|
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
|
||||||
|
|
||||||
class QUrlInfoPrivate
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
QUrlInfoPrivate() :
|
|
||||||
permissions(0),
|
|
||||||
size(0),
|
|
||||||
isDir(false),
|
|
||||||
isFile(true),
|
|
||||||
isSymLink(false),
|
|
||||||
isWritable(true),
|
|
||||||
isReadable(true),
|
|
||||||
isExecutable(false)
|
|
||||||
{}
|
|
||||||
|
|
||||||
QString name;
|
|
||||||
int permissions;
|
|
||||||
QString owner;
|
|
||||||
QString group;
|
|
||||||
qint64 size;
|
|
||||||
|
|
||||||
QDateTime lastModified;
|
|
||||||
QDateTime lastRead;
|
|
||||||
bool isDir;
|
|
||||||
bool isFile;
|
|
||||||
bool isSymLink;
|
|
||||||
bool isWritable;
|
|
||||||
bool isReadable;
|
|
||||||
bool isExecutable;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\class QUrlInfo
|
|
||||||
\brief The QUrlInfo class stores information about URLs.
|
|
||||||
|
|
||||||
\ingroup io
|
|
||||||
\ingroup network
|
|
||||||
\inmodule QtNetwork
|
|
||||||
|
|
||||||
The information about a URL that can be retrieved includes name(),
|
|
||||||
permissions(), owner(), group(), size(), lastModified(),
|
|
||||||
lastRead(), isDir(), isFile(), isSymLink(), isWritable(),
|
|
||||||
isReadable() and isExecutable().
|
|
||||||
|
|
||||||
You can create your own QUrlInfo objects passing in all the
|
|
||||||
relevant information in the constructor, and you can modify a
|
|
||||||
QUrlInfo; for each getter mentioned above there is an equivalent
|
|
||||||
setter. Note that setting values does not affect the underlying
|
|
||||||
resource that the QUrlInfo provides information about; for example
|
|
||||||
if you call setWritable(true) on a read-only resource the only
|
|
||||||
thing changed is the QUrlInfo object, not the resource.
|
|
||||||
|
|
||||||
\sa QUrl, {FTP Example}
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\enum QUrlInfo::PermissionSpec
|
|
||||||
|
|
||||||
This enum is used by the permissions() function to report the
|
|
||||||
permissions of a file.
|
|
||||||
|
|
||||||
\value ReadOwner The file is readable by the owner of the file.
|
|
||||||
\value WriteOwner The file is writable by the owner of the file.
|
|
||||||
\value ExeOwner The file is executable by the owner of the file.
|
|
||||||
\value ReadGroup The file is readable by the group.
|
|
||||||
\value WriteGroup The file is writable by the group.
|
|
||||||
\value ExeGroup The file is executable by the group.
|
|
||||||
\value ReadOther The file is readable by anyone.
|
|
||||||
\value WriteOther The file is writable by anyone.
|
|
||||||
\value ExeOther The file is executable by anyone.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Constructs an invalid QUrlInfo object with default values.
|
|
||||||
|
|
||||||
\sa isValid()
|
|
||||||
*/
|
|
||||||
|
|
||||||
QUrlInfo::QUrlInfo()
|
|
||||||
{
|
|
||||||
d = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Copy constructor, copies \a ui to this URL info object.
|
|
||||||
*/
|
|
||||||
|
|
||||||
QUrlInfo::QUrlInfo(const QUrlInfo &ui)
|
|
||||||
{
|
|
||||||
if (ui.d) {
|
|
||||||
d = new QUrlInfoPrivate;
|
|
||||||
*d = *ui.d;
|
|
||||||
} else {
|
|
||||||
d = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Constructs a QUrlInfo object by specifying all the URL's
|
|
||||||
information.
|
|
||||||
|
|
||||||
The information that is passed is the \a name, file \a
|
|
||||||
permissions, \a owner and \a group and the file's \a size. Also
|
|
||||||
passed is the \a lastModified date/time and the \a lastRead
|
|
||||||
date/time. Flags are also passed, specifically, \a isDir, \a
|
|
||||||
isFile, \a isSymLink, \a isWritable, \a isReadable and \a
|
|
||||||
isExecutable.
|
|
||||||
*/
|
|
||||||
|
|
||||||
QUrlInfo::QUrlInfo(const QString &name, int permissions, const QString &owner,
|
|
||||||
const QString &group, qint64 size, const QDateTime &lastModified,
|
|
||||||
const QDateTime &lastRead, bool isDir, bool isFile, bool isSymLink,
|
|
||||||
bool isWritable, bool isReadable, bool isExecutable)
|
|
||||||
{
|
|
||||||
d = new QUrlInfoPrivate;
|
|
||||||
d->name = name;
|
|
||||||
d->permissions = permissions;
|
|
||||||
d->owner = owner;
|
|
||||||
d->group = group;
|
|
||||||
d->size = size;
|
|
||||||
d->lastModified = lastModified;
|
|
||||||
d->lastRead = lastRead;
|
|
||||||
d->isDir = isDir;
|
|
||||||
d->isFile = isFile;
|
|
||||||
d->isSymLink = isSymLink;
|
|
||||||
d->isWritable = isWritable;
|
|
||||||
d->isReadable = isReadable;
|
|
||||||
d->isExecutable = isExecutable;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Constructs a QUrlInfo object by specifying all the URL's
|
|
||||||
information.
|
|
||||||
|
|
||||||
The information that is passed is the \a url, file \a
|
|
||||||
permissions, \a owner and \a group and the file's \a size. Also
|
|
||||||
passed is the \a lastModified date/time and the \a lastRead
|
|
||||||
date/time. Flags are also passed, specifically, \a isDir, \a
|
|
||||||
isFile, \a isSymLink, \a isWritable, \a isReadable and \a
|
|
||||||
isExecutable.
|
|
||||||
*/
|
|
||||||
|
|
||||||
QUrlInfo::QUrlInfo(const QUrl &url, int permissions, const QString &owner,
|
|
||||||
const QString &group, qint64 size, const QDateTime &lastModified,
|
|
||||||
const QDateTime &lastRead, bool isDir, bool isFile, bool isSymLink,
|
|
||||||
bool isWritable, bool isReadable, bool isExecutable)
|
|
||||||
{
|
|
||||||
d = new QUrlInfoPrivate;
|
|
||||||
d->name = QFileInfo(url.path()).fileName();
|
|
||||||
d->permissions = permissions;
|
|
||||||
d->owner = owner;
|
|
||||||
d->group = group;
|
|
||||||
d->size = size;
|
|
||||||
d->lastModified = lastModified;
|
|
||||||
d->lastRead = lastRead;
|
|
||||||
d->isDir = isDir;
|
|
||||||
d->isFile = isFile;
|
|
||||||
d->isSymLink = isSymLink;
|
|
||||||
d->isWritable = isWritable;
|
|
||||||
d->isReadable = isReadable;
|
|
||||||
d->isExecutable = isExecutable;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Sets the name of the URL to \a name. The name is the full text,
|
|
||||||
for example, "http://qt.nokia.com/doc/qurlinfo.html".
|
|
||||||
|
|
||||||
If you call this function for an invalid URL info, this function
|
|
||||||
turns it into a valid one.
|
|
||||||
|
|
||||||
\sa isValid()
|
|
||||||
*/
|
|
||||||
|
|
||||||
void QUrlInfo::setName(const QString &name)
|
|
||||||
{
|
|
||||||
if (!d)
|
|
||||||
d = new QUrlInfoPrivate;
|
|
||||||
d->name = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*!
|
|
||||||
If \a b is true then the URL is set to be a directory; if \a b is
|
|
||||||
false then the URL is set not to be a directory (which normally
|
|
||||||
means it is a file). (Note that a URL can refer to both a file and
|
|
||||||
a directory even though most file systems do not support this.)
|
|
||||||
|
|
||||||
If you call this function for an invalid URL info, this function
|
|
||||||
turns it into a valid one.
|
|
||||||
|
|
||||||
\sa isValid()
|
|
||||||
*/
|
|
||||||
|
|
||||||
void QUrlInfo::setDir(bool b)
|
|
||||||
{
|
|
||||||
if (!d)
|
|
||||||
d = new QUrlInfoPrivate;
|
|
||||||
d->isDir = b;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*!
|
|
||||||
If \a b is true then the URL is set to be a file; if \b is false
|
|
||||||
then the URL is set not to be a file (which normally means it is a
|
|
||||||
directory). (Note that a URL can refer to both a file and a
|
|
||||||
directory even though most file systems do not support this.)
|
|
||||||
|
|
||||||
If you call this function for an invalid URL info, this function
|
|
||||||
turns it into a valid one.
|
|
||||||
|
|
||||||
\sa isValid()
|
|
||||||
*/
|
|
||||||
|
|
||||||
void QUrlInfo::setFile(bool b)
|
|
||||||
{
|
|
||||||
if (!d)
|
|
||||||
d = new QUrlInfoPrivate;
|
|
||||||
d->isFile = b;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Specifies that the URL refers to a symbolic link if \a b is true
|
|
||||||
and that it does not if \a b is false.
|
|
||||||
|
|
||||||
If you call this function for an invalid URL info, this function
|
|
||||||
turns it into a valid one.
|
|
||||||
|
|
||||||
\sa isValid()
|
|
||||||
*/
|
|
||||||
|
|
||||||
void QUrlInfo::setSymLink(bool b)
|
|
||||||
{
|
|
||||||
if (!d)
|
|
||||||
d = new QUrlInfoPrivate;
|
|
||||||
d->isSymLink = b;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Specifies that the URL is writable if \a b is true and not
|
|
||||||
writable if \a b is false.
|
|
||||||
|
|
||||||
If you call this function for an invalid URL info, this function
|
|
||||||
turns it into a valid one.
|
|
||||||
|
|
||||||
\sa isValid()
|
|
||||||
*/
|
|
||||||
|
|
||||||
void QUrlInfo::setWritable(bool b)
|
|
||||||
{
|
|
||||||
if (!d)
|
|
||||||
d = new QUrlInfoPrivate;
|
|
||||||
d->isWritable = b;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Specifies that the URL is readable if \a b is true and not
|
|
||||||
readable if \a b is false.
|
|
||||||
|
|
||||||
If you call this function for an invalid URL info, this function
|
|
||||||
turns it into a valid one.
|
|
||||||
|
|
||||||
\sa isValid()
|
|
||||||
*/
|
|
||||||
|
|
||||||
void QUrlInfo::setReadable(bool b)
|
|
||||||
{
|
|
||||||
if (!d)
|
|
||||||
d = new QUrlInfoPrivate;
|
|
||||||
d->isReadable = b;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Specifies that the owner of the URL is called \a s.
|
|
||||||
|
|
||||||
If you call this function for an invalid URL info, this function
|
|
||||||
turns it into a valid one.
|
|
||||||
|
|
||||||
\sa isValid()
|
|
||||||
*/
|
|
||||||
|
|
||||||
void QUrlInfo::setOwner(const QString &s)
|
|
||||||
{
|
|
||||||
if (!d)
|
|
||||||
d = new QUrlInfoPrivate;
|
|
||||||
d->owner = s;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Specifies that the owning group of the URL is called \a s.
|
|
||||||
|
|
||||||
If you call this function for an invalid URL info, this function
|
|
||||||
turns it into a valid one.
|
|
||||||
|
|
||||||
\sa isValid()
|
|
||||||
*/
|
|
||||||
|
|
||||||
void QUrlInfo::setGroup(const QString &s)
|
|
||||||
{
|
|
||||||
if (!d)
|
|
||||||
d = new QUrlInfoPrivate;
|
|
||||||
d->group = s;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Specifies the \a size of the URL.
|
|
||||||
|
|
||||||
If you call this function for an invalid URL info, this function
|
|
||||||
turns it into a valid one.
|
|
||||||
|
|
||||||
\sa isValid()
|
|
||||||
*/
|
|
||||||
|
|
||||||
void QUrlInfo::setSize(qint64 size)
|
|
||||||
{
|
|
||||||
if (!d)
|
|
||||||
d = new QUrlInfoPrivate;
|
|
||||||
d->size = size;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Specifies that the URL has access permissions \a p.
|
|
||||||
|
|
||||||
If you call this function for an invalid URL info, this function
|
|
||||||
turns it into a valid one.
|
|
||||||
|
|
||||||
\sa isValid()
|
|
||||||
*/
|
|
||||||
|
|
||||||
void QUrlInfo::setPermissions(int p)
|
|
||||||
{
|
|
||||||
if (!d)
|
|
||||||
d = new QUrlInfoPrivate;
|
|
||||||
d->permissions = p;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Specifies that the object the URL refers to was last modified at
|
|
||||||
\a dt.
|
|
||||||
|
|
||||||
If you call this function for an invalid URL info, this function
|
|
||||||
turns it into a valid one.
|
|
||||||
|
|
||||||
\sa isValid()
|
|
||||||
*/
|
|
||||||
|
|
||||||
void QUrlInfo::setLastModified(const QDateTime &dt)
|
|
||||||
{
|
|
||||||
if (!d)
|
|
||||||
d = new QUrlInfoPrivate;
|
|
||||||
d->lastModified = dt;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\since 4.4
|
|
||||||
|
|
||||||
Specifies that the object the URL refers to was last read at
|
|
||||||
\a dt.
|
|
||||||
|
|
||||||
If you call this function for an invalid URL info, this function
|
|
||||||
turns it into a valid one.
|
|
||||||
|
|
||||||
\sa isValid()
|
|
||||||
*/
|
|
||||||
|
|
||||||
void QUrlInfo::setLastRead(const QDateTime &dt)
|
|
||||||
{
|
|
||||||
if (!d)
|
|
||||||
d = new QUrlInfoPrivate;
|
|
||||||
d->lastRead = dt;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Destroys the URL info object.
|
|
||||||
*/
|
|
||||||
|
|
||||||
QUrlInfo::~QUrlInfo()
|
|
||||||
{
|
|
||||||
delete d;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Assigns the values of \a ui to this QUrlInfo object.
|
|
||||||
*/
|
|
||||||
|
|
||||||
QUrlInfo &QUrlInfo::operator=(const QUrlInfo &ui)
|
|
||||||
{
|
|
||||||
if (ui.d) {
|
|
||||||
if (!d)
|
|
||||||
d= new QUrlInfoPrivate;
|
|
||||||
*d = *ui.d;
|
|
||||||
} else {
|
|
||||||
delete d;
|
|
||||||
d = 0;
|
|
||||||
}
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Returns the file name of the URL.
|
|
||||||
|
|
||||||
\sa isValid()
|
|
||||||
*/
|
|
||||||
|
|
||||||
QString QUrlInfo::name() const
|
|
||||||
{
|
|
||||||
if (!d)
|
|
||||||
return QString();
|
|
||||||
return d->name;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Returns the permissions of the URL. You can use the \c PermissionSpec flags
|
|
||||||
to test for certain permissions.
|
|
||||||
|
|
||||||
\sa isValid()
|
|
||||||
*/
|
|
||||||
|
|
||||||
int QUrlInfo::permissions() const
|
|
||||||
{
|
|
||||||
if (!d)
|
|
||||||
return 0;
|
|
||||||
return d->permissions;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Returns the owner of the URL.
|
|
||||||
|
|
||||||
\sa isValid()
|
|
||||||
*/
|
|
||||||
|
|
||||||
QString QUrlInfo::owner() const
|
|
||||||
{
|
|
||||||
if (!d)
|
|
||||||
return QString();
|
|
||||||
return d->owner;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Returns the group of the URL.
|
|
||||||
|
|
||||||
\sa isValid()
|
|
||||||
*/
|
|
||||||
|
|
||||||
QString QUrlInfo::group() const
|
|
||||||
{
|
|
||||||
if (!d)
|
|
||||||
return QString();
|
|
||||||
return d->group;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Returns the size of the URL.
|
|
||||||
|
|
||||||
\sa isValid()
|
|
||||||
*/
|
|
||||||
|
|
||||||
qint64 QUrlInfo::size() const
|
|
||||||
{
|
|
||||||
if (!d)
|
|
||||||
return 0;
|
|
||||||
return d->size;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Returns the last modification date of the URL.
|
|
||||||
|
|
||||||
\sa isValid()
|
|
||||||
*/
|
|
||||||
|
|
||||||
QDateTime QUrlInfo::lastModified() const
|
|
||||||
{
|
|
||||||
if (!d)
|
|
||||||
return QDateTime();
|
|
||||||
return d->lastModified;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Returns the date when the URL was last read.
|
|
||||||
|
|
||||||
\sa isValid()
|
|
||||||
*/
|
|
||||||
|
|
||||||
QDateTime QUrlInfo::lastRead() const
|
|
||||||
{
|
|
||||||
if (!d)
|
|
||||||
return QDateTime();
|
|
||||||
return d->lastRead;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Returns true if the URL is a directory; otherwise returns false.
|
|
||||||
|
|
||||||
\sa isValid()
|
|
||||||
*/
|
|
||||||
|
|
||||||
bool QUrlInfo::isDir() const
|
|
||||||
{
|
|
||||||
if (!d)
|
|
||||||
return false;
|
|
||||||
return d->isDir;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Returns true if the URL is a file; otherwise returns false.
|
|
||||||
|
|
||||||
\sa isValid()
|
|
||||||
*/
|
|
||||||
|
|
||||||
bool QUrlInfo::isFile() const
|
|
||||||
{
|
|
||||||
if (!d)
|
|
||||||
return false;
|
|
||||||
return d->isFile;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Returns true if the URL is a symbolic link; otherwise returns false.
|
|
||||||
|
|
||||||
\sa isValid()
|
|
||||||
*/
|
|
||||||
|
|
||||||
bool QUrlInfo::isSymLink() const
|
|
||||||
{
|
|
||||||
if (!d)
|
|
||||||
return false;
|
|
||||||
return d->isSymLink;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Returns true if the URL is writable; otherwise returns false.
|
|
||||||
|
|
||||||
\sa isValid()
|
|
||||||
*/
|
|
||||||
|
|
||||||
bool QUrlInfo::isWritable() const
|
|
||||||
{
|
|
||||||
if (!d)
|
|
||||||
return false;
|
|
||||||
return d->isWritable;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Returns true if the URL is readable; otherwise returns false.
|
|
||||||
|
|
||||||
\sa isValid()
|
|
||||||
*/
|
|
||||||
|
|
||||||
bool QUrlInfo::isReadable() const
|
|
||||||
{
|
|
||||||
if (!d)
|
|
||||||
return false;
|
|
||||||
return d->isReadable;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Returns true if the URL is executable; otherwise returns false.
|
|
||||||
|
|
||||||
\sa isValid()
|
|
||||||
*/
|
|
||||||
|
|
||||||
bool QUrlInfo::isExecutable() const
|
|
||||||
{
|
|
||||||
if (!d)
|
|
||||||
return false;
|
|
||||||
return d->isExecutable;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Returns true if \a i1 is greater than \a i2; otherwise returns
|
|
||||||
false. The objects are compared by the value, which is specified
|
|
||||||
by \a sortBy. This must be one of QDir::Name, QDir::Time or
|
|
||||||
QDir::Size.
|
|
||||||
*/
|
|
||||||
|
|
||||||
bool QUrlInfo::greaterThan(const QUrlInfo &i1, const QUrlInfo &i2,
|
|
||||||
int sortBy)
|
|
||||||
{
|
|
||||||
switch (sortBy) {
|
|
||||||
case QDir::Name:
|
|
||||||
return i1.name() > i2.name();
|
|
||||||
case QDir::Time:
|
|
||||||
return i1.lastModified() > i2.lastModified();
|
|
||||||
case QDir::Size:
|
|
||||||
return i1.size() > i2.size();
|
|
||||||
default:
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Returns true if \a i1 is less than \a i2; otherwise returns false.
|
|
||||||
The objects are compared by the value, which is specified by \a
|
|
||||||
sortBy. This must be one of QDir::Name, QDir::Time or QDir::Size.
|
|
||||||
*/
|
|
||||||
|
|
||||||
bool QUrlInfo::lessThan(const QUrlInfo &i1, const QUrlInfo &i2,
|
|
||||||
int sortBy)
|
|
||||||
{
|
|
||||||
return !greaterThan(i1, i2, sortBy);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Returns true if \a i1 equals to \a i2; otherwise returns false.
|
|
||||||
The objects are compared by the value, which is specified by \a
|
|
||||||
sortBy. This must be one of QDir::Name, QDir::Time or QDir::Size.
|
|
||||||
*/
|
|
||||||
|
|
||||||
bool QUrlInfo::equal(const QUrlInfo &i1, const QUrlInfo &i2,
|
|
||||||
int sortBy)
|
|
||||||
{
|
|
||||||
switch (sortBy) {
|
|
||||||
case QDir::Name:
|
|
||||||
return i1.name() == i2.name();
|
|
||||||
case QDir::Time:
|
|
||||||
return i1.lastModified() == i2.lastModified();
|
|
||||||
case QDir::Size:
|
|
||||||
return i1.size() == i2.size();
|
|
||||||
default:
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Returns true if this QUrlInfo is equal to \a other; otherwise
|
|
||||||
returns false.
|
|
||||||
|
|
||||||
\sa lessThan(), equal()
|
|
||||||
*/
|
|
||||||
|
|
||||||
bool QUrlInfo::operator==(const QUrlInfo &other) const
|
|
||||||
{
|
|
||||||
if (!d)
|
|
||||||
return other.d == 0;
|
|
||||||
if (!other.d)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
return (d->name == other.d->name &&
|
|
||||||
d->permissions == other.d->permissions &&
|
|
||||||
d->owner == other.d->owner &&
|
|
||||||
d->group == other.d->group &&
|
|
||||||
d->size == other.d->size &&
|
|
||||||
d->lastModified == other.d->lastModified &&
|
|
||||||
d->lastRead == other.d->lastRead &&
|
|
||||||
d->isDir == other.d->isDir &&
|
|
||||||
d->isFile == other.d->isFile &&
|
|
||||||
d->isSymLink == other.d->isSymLink &&
|
|
||||||
d->isWritable == other.d->isWritable &&
|
|
||||||
d->isReadable == other.d->isReadable &&
|
|
||||||
d->isExecutable == other.d->isExecutable);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\fn bool QUrlInfo::operator!=(const QUrlInfo &other) const
|
|
||||||
\since 4.2
|
|
||||||
|
|
||||||
Returns true if this QUrlInfo is not equal to \a other; otherwise
|
|
||||||
returns false.
|
|
||||||
|
|
||||||
\sa lessThan(), equal()
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Returns true if the URL info is valid; otherwise returns false.
|
|
||||||
Valid means that the QUrlInfo contains real information.
|
|
||||||
|
|
||||||
You should always check if the URL info is valid before relying on
|
|
||||||
the values.
|
|
||||||
*/
|
|
||||||
bool QUrlInfo::isValid() const
|
|
||||||
{
|
|
||||||
return d != 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
QT_END_NAMESPACE
|
|
@ -1,121 +0,0 @@
|
|||||||
/****************************************************************************
|
|
||||||
**
|
|
||||||
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
|
||||||
** Contact: http://www.qt-project.org/legal
|
|
||||||
**
|
|
||||||
** This file is part of the QtNetwork module of the Qt Toolkit.
|
|
||||||
**
|
|
||||||
** $QT_BEGIN_LICENSE:LGPL$
|
|
||||||
** Commercial License Usage
|
|
||||||
** Licensees holding valid commercial Qt licenses may use this file in
|
|
||||||
** accordance with the commercial license agreement provided with the
|
|
||||||
** Software or, alternatively, in accordance with the terms contained in
|
|
||||||
** a written agreement between you and Digia. For licensing terms and
|
|
||||||
** conditions see http://qt.digia.com/licensing. For further information
|
|
||||||
** use the contact form at http://qt.digia.com/contact-us.
|
|
||||||
**
|
|
||||||
** GNU Lesser General Public License Usage
|
|
||||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
|
||||||
** General Public License version 2.1 as published by the Free Software
|
|
||||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
|
||||||
** packaging of this file. Please review the following information to
|
|
||||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
|
||||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
|
||||||
**
|
|
||||||
** In addition, as a special exception, Digia gives you certain additional
|
|
||||||
** rights. These rights are described in the Digia Qt LGPL Exception
|
|
||||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
|
||||||
**
|
|
||||||
** GNU General Public License Usage
|
|
||||||
** Alternatively, this file may be used under the terms of the GNU
|
|
||||||
** General Public License version 3.0 as published by the Free Software
|
|
||||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
|
||||||
** packaging of this file. Please review the following information to
|
|
||||||
** ensure the GNU General Public License version 3.0 requirements will be
|
|
||||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
|
||||||
**
|
|
||||||
**
|
|
||||||
** $QT_END_LICENSE$
|
|
||||||
**
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#ifndef QURLINFO_H
|
|
||||||
#define QURLINFO_H
|
|
||||||
|
|
||||||
#include <QtCore/qdatetime.h>
|
|
||||||
#include <QtCore/qstring.h>
|
|
||||||
#include <QtCore/qiodevice.h>
|
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
|
||||||
|
|
||||||
class QUrl;
|
|
||||||
class QUrlInfoPrivate;
|
|
||||||
|
|
||||||
class QUrlInfo
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
enum PermissionSpec {
|
|
||||||
ReadOwner = 00400, WriteOwner = 00200, ExeOwner = 00100,
|
|
||||||
ReadGroup = 00040, WriteGroup = 00020, ExeGroup = 00010,
|
|
||||||
ReadOther = 00004, WriteOther = 00002, ExeOther = 00001 };
|
|
||||||
|
|
||||||
QUrlInfo();
|
|
||||||
QUrlInfo(const QUrlInfo &ui);
|
|
||||||
QUrlInfo(const QString &name, int permissions, const QString &owner,
|
|
||||||
const QString &group, qint64 size, const QDateTime &lastModified,
|
|
||||||
const QDateTime &lastRead, bool isDir, bool isFile, bool isSymLink,
|
|
||||||
bool isWritable, bool isReadable, bool isExecutable);
|
|
||||||
QUrlInfo(const QUrl &url, int permissions, const QString &owner,
|
|
||||||
const QString &group, qint64 size, const QDateTime &lastModified,
|
|
||||||
const QDateTime &lastRead, bool isDir, bool isFile, bool isSymLink,
|
|
||||||
bool isWritable, bool isReadable, bool isExecutable);
|
|
||||||
QUrlInfo &operator=(const QUrlInfo &ui);
|
|
||||||
virtual ~QUrlInfo();
|
|
||||||
|
|
||||||
virtual void setName(const QString &name);
|
|
||||||
virtual void setDir(bool b);
|
|
||||||
virtual void setFile(bool b);
|
|
||||||
virtual void setSymLink(bool b);
|
|
||||||
virtual void setOwner(const QString &s);
|
|
||||||
virtual void setGroup(const QString &s);
|
|
||||||
virtual void setSize(qint64 size);
|
|
||||||
virtual void setWritable(bool b);
|
|
||||||
virtual void setReadable(bool b);
|
|
||||||
virtual void setPermissions(int p);
|
|
||||||
virtual void setLastModified(const QDateTime &dt);
|
|
||||||
void setLastRead(const QDateTime &dt);
|
|
||||||
|
|
||||||
bool isValid() const;
|
|
||||||
|
|
||||||
QString name() const;
|
|
||||||
int permissions() const;
|
|
||||||
QString owner() const;
|
|
||||||
QString group() const;
|
|
||||||
qint64 size() const;
|
|
||||||
QDateTime lastModified() const;
|
|
||||||
QDateTime lastRead() const;
|
|
||||||
bool isDir() const;
|
|
||||||
bool isFile() const;
|
|
||||||
bool isSymLink() const;
|
|
||||||
bool isWritable() const;
|
|
||||||
bool isReadable() const;
|
|
||||||
bool isExecutable() const;
|
|
||||||
|
|
||||||
static bool greaterThan(const QUrlInfo &i1, const QUrlInfo &i2,
|
|
||||||
int sortBy);
|
|
||||||
static bool lessThan(const QUrlInfo &i1, const QUrlInfo &i2,
|
|
||||||
int sortBy);
|
|
||||||
static bool equal(const QUrlInfo &i1, const QUrlInfo &i2,
|
|
||||||
int sortBy);
|
|
||||||
|
|
||||||
bool operator==(const QUrlInfo &i) const;
|
|
||||||
inline bool operator!=(const QUrlInfo &i) const
|
|
||||||
{ return !operator==(i); }
|
|
||||||
|
|
||||||
private:
|
|
||||||
QUrlInfoPrivate *d;
|
|
||||||
};
|
|
||||||
|
|
||||||
QT_END_NAMESPACE
|
|
||||||
|
|
||||||
#endif // QURLINFO_H
|
|
Loading…
Reference in New Issue