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
QFSFileEngine Class Reference

\inmodule QtCore More...

#include <qfsfileengine_p.h>

Inheritance diagram for QFSFileEngine:
Collaboration diagram for QFSFileEngine:

Public Member Functions

 QFSFileEngine ()
 Constructs a QFSFileEngine.
 QFSFileEngine (const QString &file)
 Constructs a QFSFileEngine for the file name file.
 ~QFSFileEngine ()
 Destructs the QFSFileEngine.
bool open (QIODevice::OpenMode openMode, std::optional< QFile::Permissions > permissions) override
 \reimp
bool close () override
 \reimp
bool flush () override
 \reimp
bool syncToDisk () override
 \reimp
qint64 size () const override
 \reimp
qint64 pos () const override
 \reimp
bool seek (qint64) override
 \reimp
bool isSequential () const override
 \reimp
bool remove () override
 \reimp
bool copy (const QString &newName) override
 For Windows or Apple platforms, copy the file to file copyName.
bool rename (const QString &newName) override
 Requests that the file be renamed to newName in the file system.
bool renameOverwrite (const QString &newName) override
bool link (const QString &newName) override
 Creates a link from the file currently specified by fileName() to newName.
bool mkdir (const QString &dirName, bool createParentDirectories, std::optional< QFile::Permissions > permissions) const override
 \reimp
bool rmdir (const QString &dirName, bool recurseParentDirectories) const override
 \reimp
bool setSize (qint64 size) override
 \reimp
bool caseSensitive () const override
 Returns whether the file system considers the file name to be case sensitive.
bool isRelativePath () const override
 \reimp
FileFlags fileFlags (FileFlags type) const override
 \reimp
bool setPermissions (uint perms) override
 \reimp
QByteArray id () const override
QString fileName (FileName file) const override
 \reimp
uint ownerId (FileOwner) const override
 In Unix, if stat() is successful, the uid is returned if own is the owner.
QString owner (FileOwner) const override
 \reimp
bool setFileTime (const QDateTime &newDate, QFile::FileTime time) override
 \reimp
QDateTime fileTime (QFile::FileTime time) const override
 \reimp
void setFileName (const QString &file) override
 \reimp
void setFileEntry (QFileSystemEntry &&entry)
int handle () const override
 \reimp
IteratorUniquePtr beginEntryList (const QString &path, QDirListing::IteratorFlags filters, const QStringList &filterNames) override
qint64 read (char *data, qint64 maxlen) override
 \reimp
qint64 readLine (char *data, qint64 maxlen) override
 \reimp
qint64 write (const char *data, qint64 len) override
 \reimp
TriStateResult cloneTo (QAbstractFileEngine *target) override
 \reimp
virtual bool isUnnamedFile () const
bool extension (Extension extension, const ExtensionOption *option=nullptr, ExtensionReturn *output=nullptr) override
 \reimp
bool supportsExtension (Extension extension) const override
 \reimp
bool open (QIODevice::OpenMode flags, int fd, QFile::FileHandleFlags handleFlags)
 Opens the file descriptor fd in openMode mode.
bool open (QIODevice::OpenMode flags, FILE *fh, QFile::FileHandleFlags handleFlags)
 Opens the file handle fh in openMode mode.
Public Member Functions inherited from QAbstractFileEngine
virtual ~QAbstractFileEngine ()
 Destroys the QAbstractFileEngine.
bool atEnd () const
ucharmap (qint64 offset, qint64 size, QFile::MemoryMapFlags flags)
bool unmap (uchar *ptr)
virtual IteratorUniquePtr endEntryList ()
QFile::FileError error () const
 Returns the QFile::FileError that resulted from the last failed operation.
QString errorString () const
 Returns the human-readable message appropriate to the current error reported by error().

Static Public Member Functions

static bool setCurrentPath (const QString &path)
 Sets the current path (e.g., for QDir), to path.
static QString currentPath (const QString &path=QString())
 For Unix, returns the current working directory for the file engine.
static QFileInfoList drives ()
 For Windows, returns the list of drives in the file system as a list of QFileInfo objects.
Static Public Member Functions inherited from QAbstractFileEngine
static std::unique_ptr< QAbstractFileEnginecreate (const QString &fileName)
 Creates and returns a QAbstractFileEngine suitable for processing fileName.

Protected Member Functions

 QFSFileEngine (QFSFileEnginePrivate &dd)
Protected Member Functions inherited from QAbstractFileEngine
void setError (QFile::FileError error, const QString &str)
 Sets the error type to error, and the error string to errorString.
 QAbstractFileEngine ()
 Constructs a new QAbstractFileEngine that does not refer to any file or directory.
 QAbstractFileEngine (QAbstractFileEnginePrivate &)

Additional Inherited Members

Public Types inherited from QAbstractFileEngine
enum  FileFlag {
  ReadOwnerPerm = 0x4000 , WriteOwnerPerm = 0x2000 , ExeOwnerPerm = 0x1000 , ReadUserPerm = 0x0400 ,
  WriteUserPerm = 0x0200 , ExeUserPerm = 0x0100 , ReadGroupPerm = 0x0040 , WriteGroupPerm = 0x0020 ,
  ExeGroupPerm = 0x0010 , ReadOtherPerm = 0x0004 , WriteOtherPerm = 0x0002 , ExeOtherPerm = 0x0001 ,
  LinkType = 0x10000 , FileType = 0x20000 , DirectoryType = 0x40000 , BundleType = 0x80000 ,
  HiddenFlag = 0x0100000 , LocalDiskFlag = 0x0200000 , ExistsFlag = 0x0400000 , RootFlag = 0x0800000 ,
  Refresh = 0x1000000 , PermsMask = 0x0000FFFF , TypesMask = 0x000F0000 , FlagsMask = 0x0FF00000 ,
  FileInfoAll = FlagsMask | PermsMask | TypesMask
}
 The permissions and types of a file, suitable for OR'ing together. More...
enum  FileName {
  DefaultName , BaseName , PathName , AbsoluteName ,
  AbsolutePathName , AbsoluteLinkTarget , CanonicalName , CanonicalPathName ,
  BundleName , JunctionName , RawLinkPath , NFileNames
}
 These values are used to request a file name in a particular format. More...
enum  FileOwner { OwnerUser , OwnerGroup }
 \value OwnerUser The user who owns the file. More...
enum class  TriStateResult : qint8 { NotSupported = -1 , Failed = 0 , Success = 1 }
enum  Extension { AtEndExtension , FastReadLineExtension , MapExtension , UnMapExtension }
typedef QAbstractFileEngineIterator Iterator
using IteratorUniquePtr = std::unique_ptr<Iterator>
Protected Attributes inherited from QAbstractFileEngine
QScopedPointer< QAbstractFileEnginePrivated_ptr

Detailed Description

\inmodule QtCore

The QFSFileEngine class implements Qt's default file engine.

Since
4.1

This class is part of the file engine framework in Qt. If you only want to access files or directories, use QFile, QFileInfo or QDir instead.

QFSFileEngine is the default file engine for accessing regular files. It is provided for convenience; by subclassing this class, you can alter its behavior slightly, without having to write a complete QAbstractFileEngine subclass. To install your custom file engine, you must also subclass QAbstractFileEngineHandler and create an instance of your handler.

It can also be useful to create a QFSFileEngine object directly if you need to use the local file system inside QAbstractFileEngine::create(), in order to avoid recursion (as higher-level classes tend to call QAbstractFileEngine::create()).

Definition at line 45 of file qfsfileengine_p.h.

Constructor & Destructor Documentation

◆ QFSFileEngine() [1/3]

QFSFileEngine::QFSFileEngine ( )

Constructs a QFSFileEngine.

Definition at line 122 of file qfsfileengine.cpp.

◆ QFSFileEngine() [2/3]

QFSFileEngine::QFSFileEngine ( const QString & file)
explicit

Constructs a QFSFileEngine for the file name file.

Definition at line 112 of file qfsfileengine.cpp.

◆ ~QFSFileEngine()

QFSFileEngine::~QFSFileEngine ( )

Destructs the QFSFileEngine.

Definition at line 170 of file qfsfileengine.cpp.

◆ QFSFileEngine() [3/3]

QFSFileEngine::QFSFileEngine ( QFSFileEnginePrivate & dd)
protected

Definition at line 129 of file qfsfileengine.cpp.

Member Function Documentation

◆ beginEntryList()

QAbstractFileEngine::IteratorUniquePtr QFSFileEngine::beginEntryList ( const QString & path,
QDirListing::IteratorFlags filters,
const QStringList & filterNames )
overridevirtual

Reimplemented from QAbstractFileEngine.

Definition at line 787 of file qfsfileengine.cpp.

◆ caseSensitive()

bool QFSFileEngine::caseSensitive ( ) const
overridevirtual

Returns whether the file system considers the file name to be case sensitive.

Reimplemented from QAbstractFileEngine.

Definition at line 1006 of file qfsfileengine.cpp.

◆ cloneTo()

QAbstractFileEngine::TriStateResult QFSFileEngine::cloneTo ( QAbstractFileEngine * target)
overridevirtual

\reimp

Reimplemented from QAbstractFileEngine.

Definition at line 652 of file qfsfileengine_unix.cpp.

◆ close()

bool QFSFileEngine::close ( )
overridevirtual

\reimp

Reimplemented from QAbstractFileEngine.

Definition at line 344 of file qfsfileengine.cpp.

◆ copy()

bool QFSFileEngine::copy ( const QString & copyName)
overridevirtual

For Windows or Apple platforms, copy the file to file copyName.

Not implemented for other Unix platforms.

Reimplemented from QAbstractFileEngine.

Definition at line 919 of file qfsfileengine.cpp.

◆ currentPath()

QString QFSFileEngine::currentPath ( const QString & fileName = QString())
static

For Unix, returns the current working directory for the file engine.

For Windows, returns the canonicalized form of the current path used by the file engine for the drive specified by fileName. On Windows, each drive has its own current directory, so a different path is returned for file names that include different drive names (e.g. A: or C:).

See also
setCurrentPath()

Definition at line 298 of file qfsfileengine_unix.cpp.

◆ drives()

QFileInfoList QFSFileEngine::drives ( )
static

For Windows, returns the list of drives in the file system as a list of QFileInfo objects.

On Unix, only the root path is returned. On Windows, this function returns all drives (A:\, C:\, D:\, and so on).

For Unix, the list contains just the root path "/".

Definition at line 304 of file qfsfileengine_unix.cpp.

◆ extension()

bool QFSFileEngine::extension ( Extension extension,
const ExtensionOption * option = nullptr,
ExtensionReturn * output = nullptr )
overridevirtual

\reimp

Reimplemented from QAbstractFileEngine.

Definition at line 820 of file qfsfileengine.cpp.

◆ fileFlags()

QAbstractFileEngine::FileFlags QFSFileEngine::fileFlags ( FileFlags type) const
overridevirtual

\reimp

Reimplemented from QAbstractFileEngine.

Definition at line 340 of file qfsfileengine_unix.cpp.

◆ fileName()

QString QFSFileEngine::fileName ( QAbstractFileEngine::FileName file) const
overridevirtual

\reimp

Reimplemented from QAbstractFileEngine.

Definition at line 423 of file qfsfileengine_unix.cpp.

◆ fileTime()

QDateTime QFSFileEngine::fileTime ( QFile::FileTime time) const
overridevirtual

\reimp

Reimplemented from QAbstractFileEngine.

Definition at line 515 of file qfsfileengine.cpp.

◆ flush()

bool QFSFileEngine::flush ( )
overridevirtual

\reimp

Reimplemented from QAbstractFileEngine.

Definition at line 399 of file qfsfileengine.cpp.

Referenced by testing.tools.encode_pdf_filter._SinkPdfStream::close().

Here is the caller graph for this function:

◆ handle()

int QFSFileEngine::handle ( ) const
overridevirtual

\reimp

Reimplemented from QAbstractFileEngine.

Definition at line 572 of file qfsfileengine.cpp.

◆ id()

QByteArray QFSFileEngine::id ( ) const
overridevirtual
Since
5.9

Return an identifier that (hopefully) uniquely identifies this file in the system. Returns an invalid QByteArray() if that cannot be calculated.

Reimplemented from QAbstractFileEngine.

Definition at line 415 of file qfsfileengine_unix.cpp.

◆ isRelativePath()

bool QFSFileEngine::isRelativePath ( ) const
overridevirtual

\reimp

Reimplemented from QAbstractFileEngine.

Definition at line 464 of file qfsfileengine_unix.cpp.

◆ isSequential()

bool QFSFileEngine::isSequential ( ) const
overridevirtual

\reimp

Reimplemented from QAbstractFileEngine.

Definition at line 797 of file qfsfileengine.cpp.

◆ isUnnamedFile()

virtual bool QFSFileEngine::isUnnamedFile ( ) const
inlinevirtual

Definition at line 98 of file qfsfileengine_p.h.

◆ link()

bool QFSFileEngine::link ( const QString & newName)
overridevirtual

Creates a link from the file currently specified by fileName() to newName.

What a link is depends on the underlying filesystem (be it a shortcut on Windows or a symbolic link on Unix). Returns true if successful; otherwise returns false.

Note
On Windows newName is expected to end with .lnk as the filename extension.

Reimplemented from QAbstractFileEngine.

Definition at line 282 of file qfsfileengine_unix.cpp.

◆ mkdir()

bool QFSFileEngine::mkdir ( const QString & dirName,
bool createParentDirectories,
std::optional< QFile::Permissions > permissions ) const
overridevirtual

\reimp

Reimplemented from QAbstractFileEngine.

Definition at line 975 of file qfsfileengine.cpp.

◆ open() [1/3]

bool QFSFileEngine::open ( QIODevice::OpenMode openMode,
FILE * fh,
QFile::FileHandleFlags handleFlags )

Opens the file handle fh in openMode mode.

Returns true on success; otherwise returns false.

Definition at line 228 of file qfsfileengine.cpp.

◆ open() [2/3]

bool QFSFileEngine::open ( QIODevice::OpenMode openMode,
int fd,
QFile::FileHandleFlags handleFlags )

Opens the file descriptor fd in openMode mode.

Returns true on success; otherwise returns false.

Definition at line 288 of file qfsfileengine.cpp.

◆ open() [3/3]

bool QFSFileEngine::open ( QIODevice::OpenMode openMode,
std::optional< QFile::Permissions > permissions )
overridevirtual

\reimp

Reimplemented from QAbstractFileEngine.

Definition at line 196 of file qfsfileengine.cpp.

◆ owner()

QString QFSFileEngine::owner ( QAbstractFileEngine::FileOwner own) const
overridevirtual

\reimp

Reimplemented from QAbstractFileEngine.

Definition at line 482 of file qfsfileengine_unix.cpp.

◆ ownerId()

uint QFSFileEngine::ownerId ( QAbstractFileEngine::FileOwner own) const
overridevirtual

In Unix, if stat() is successful, the uid is returned if own is the owner.

Otherwise the gid is returned. If stat() is unsuccessful, -2 is reuturned.

For Windows, -2 is always returned.

Reimplemented from QAbstractFileEngine.

Definition at line 471 of file qfsfileengine_unix.cpp.

◆ pos()

qint64 QFSFileEngine::pos ( ) const
overridevirtual

\reimp

Reimplemented from QAbstractFileEngine.

Definition at line 487 of file qfsfileengine.cpp.

◆ read()

qint64 QFSFileEngine::read ( char * data,
qint64 maxlen )
overridevirtual

\reimp

Reimplemented from QAbstractFileEngine.

Definition at line 581 of file qfsfileengine.cpp.

◆ readLine()

qint64 QFSFileEngine::readLine ( char * data,
qint64 maxlen )
overridevirtual

\reimp

Reimplemented from QAbstractFileEngine.

Definition at line 658 of file qfsfileengine.cpp.

◆ remove()

bool QFSFileEngine::remove ( )
overridevirtual

\reimp

Reimplemented from QAbstractFileEngine.

Definition at line 932 of file qfsfileengine.cpp.

◆ rename()

bool QFSFileEngine::rename ( const QString & newName)
inlineoverridevirtual

Requests that the file be renamed to newName in the file system.

If the operation succeeds return true; otherwise return false.

See also
setFileName()

Reimplemented from QAbstractFileEngine.

Definition at line 64 of file qfsfileengine_p.h.

◆ renameOverwrite()

bool QFSFileEngine::renameOverwrite ( const QString & newName)
inlineoverridevirtual
Since
5.1

Requests that the file be renamed to newName in the file system. If the new name already exists, it must be overwritten. If the operation succeeds, returns true; otherwise returns false.

See also
setFileName()

Reimplemented from QAbstractFileEngine.

Definition at line 66 of file qfsfileengine_p.h.

◆ rmdir()

bool QFSFileEngine::rmdir ( const QString & dirName,
bool recurseParentDirectories ) const
overridevirtual

\reimp

Reimplemented from QAbstractFileEngine.

Definition at line 985 of file qfsfileengine.cpp.

◆ seek()

bool QFSFileEngine::seek ( qint64 pos)
overridevirtual

\reimp

Reimplemented from QAbstractFileEngine.

Definition at line 506 of file qfsfileengine.cpp.

◆ setCurrentPath()

bool QFSFileEngine::setCurrentPath ( const QString & path)
static

Sets the current path (e.g., for QDir), to path.

Returns true if the new path exists; otherwise this function does nothing, and returns false.

See also
currentPath()

Definition at line 997 of file qfsfileengine.cpp.

◆ setFileEntry()

void QFSFileEngine::setFileEntry ( QFileSystemEntry && entry)

Definition at line 948 of file qfsfileengine.cpp.

◆ setFileName()

void QFSFileEngine::setFileName ( const QString & file)
overridevirtual

\reimp

Reimplemented from QAbstractFileEngine.

Definition at line 186 of file qfsfileengine.cpp.

◆ setFileTime()

bool QFSFileEngine::setFileTime ( const QDateTime & newDate,
QFile::FileTime time )
overridevirtual

\reimp

Reimplemented from QAbstractFileEngine.

Definition at line 524 of file qfsfileengine_unix.cpp.

◆ setPermissions()

bool QFSFileEngine::setPermissions ( uint perms)
overridevirtual

\reimp

Reimplemented from QAbstractFileEngine.

Definition at line 489 of file qfsfileengine_unix.cpp.

◆ setSize()

bool QFSFileEngine::setSize ( qint64 size)
overridevirtual

\reimp

Reimplemented from QAbstractFileEngine.

Definition at line 509 of file qfsfileengine_unix.cpp.

◆ size()

qint64 QFSFileEngine::size ( ) const
overridevirtual

\reimp

Reimplemented from QAbstractFileEngine.

Definition at line 449 of file qfsfileengine.cpp.

◆ supportsExtension()

bool QFSFileEngine::supportsExtension ( Extension extension) const
overridevirtual

\reimp

Reimplemented from QAbstractFileEngine.

Definition at line 843 of file qfsfileengine.cpp.

◆ syncToDisk()

bool QFSFileEngine::syncToDisk ( )
overridevirtual

\reimp

Reimplemented from QAbstractFileEngine.

Definition at line 413 of file qfsfileengine.cpp.

◆ write()

qint64 QFSFileEngine::write ( const char * data,
qint64 len )
overridevirtual

\reimp

Reimplemented from QAbstractFileEngine.

Definition at line 711 of file qfsfileengine.cpp.


The documentation for this class was generated from the following files: