专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 软件架构设计

QT:QAbstractFileEngine

发布时间:2011-06-20 02:11:13 文章来源:www.iduyao.cn 采编人员:星星草
QT::QAbstractFileEngine
QAbstractFileEngine类参考
QAbstractFileEngine类为访问文件系统提供了一些抽象概念。
#include<QAbstractFileEngine>
继承于QFSFileEngine

附注:该类的所有函数都是被新收入的,该类在QT4.1中有被介绍


细节描述:
QAbstractFileEngine类为访问文件系统提供了抽象概念。类QDir,QFile,QFileInfo都是引
用QAbstractFileEngine的内核。如果你创建属于自己的QAbstractFileEngine子类,当文件
路径是一个文件句柄时就会用到该抽象文件引擎。

一个QAbstractFileEngine可以是指一个文件或者一个目录,如果是代指一个文件,
函数setFileName(),rename(), remove()就可以派上用场了;
如果代指一个文件目录,函数mkdir(), rmdir(), entryList()就可以派上用场;
在综上所有情况下,函数 caseSensitive(), isRelativePath(), fileFlags(),
ownerId(), owner(), fileTime()都是可以派上用场的。

在文件系统的基础之上,QAbstractFileEngine子类可以用于建立进行同步网络I/O操作,
本地文件系统操作,或者用于访问文件资源系统。
Member Type Documentation:
enum QAbstractFileEngine::Extension
这个枚举集描述了文件系统可以支持的扩展类型,在使用这些扩展类型之前,最
好确定是否被支持(可以调用supportsExtension()函数)
QAbstractFileEngine::AtEndExtension
常量类型,系统赋值为0.无论文件当前位置是否在atend(),该扩展类型允许文件系统
在不必检查文件大小的情况下提供本地缓存来包报道达文件末端状态。这对于连续性
文件同样有效,比如当文件大小无法用于决定当前是否到达文件尾端时。如果已经到
达文件尾端则该扩展类型返回true,否则返回false。对于extension()函数输入和输
出参数总是被忽略的。

QAbstractFileEngine::FastReadLineExtension
常量类型,默认赋值为1.无论文件系统是否为readLine()提供快速访问的实现,如果
readLine()在文件系统中任然未被实现, QAbstractFileEngine就会重复调用read()
来加以实现,如果对于该扩展类型,函数supportsExtension()返回false,即便如此
QIODevice类也还是可以在利用内核缓存来提供用于快速访问的实现。
对于QAbstractFileEngine文件引擎已经通过readLine()实现了快速访问行,对于该
扩展类型如果函数supportsExtension()返回false可以避免在QIODevice中也生存缓存。

QAbstractFileEngine::MapExtension
常量类型,默认赋值为2.如果文件系统提供了这种类型扩展,就可以实现从文件到内存
的映射。

QAbstractFileEngine::UnMapExtension
用于撤销先前的【文件到内存】的映射。
该枚举系列在QT4.3中有被介绍。


enum QAbstractFileEngine::FileFlag
flags QAbstractFileEngine::FileFlags
用于定义文件的相关读写执行等权限。
QAbstractFileEngine::ReadOwnerPerm
常量,值为0x4000。文件所有者拥有读的权限。
QAbstractFileEngine::WriteOwnerPerm
常量,值为0x2000.文件的所有者拥有写的权限。
QAbstractFileEngine::ExeOwnerPerm
常量,值为0x1000.文件的所有者拥有执行的权限。
QAbstractFileEngine::ReadUserPerm
常量,值为0x0400.当前用户拥有读取该文件的权限。
QAbstractFileEngine::WriteUserPerm
常量,值为0x0200.当前用户拥有对该文件的写入权限
QAbstractFileEngine::ExeUserPerm
常量,值为0x0100.当前用户拥有对该文件的执行权限
QAbstractFileEngine::ReadGroupPerm
常量,值为0x0020.当前用户组的成员可以拥有读该文件的权限
QAbstractFileEngine::WriteGroupPerm
常量,值为0x0020.当前用户组的成员拥有该文件的写入权限。
QAbstractFileEngine::ExeGroupPerm
常量,值为0x0010,当前用户组的成员拥有该文件的执行权限
QAbstractFileEngine::ReadOtherPerm
常量,值为0x0004,所有用户拥有对该文件的读的权限
QAbstractFileEngine::WriteOtherPerm
常量,值为0x0002,所有用户拥有对该文件的写的权限
QAbstractFileEngine::ExeOtherPerm
常量,值为0x0001,所有用户拥有对该文件的执行权限
QAbstractFileEngine::LinkType
常量,值为0x1000,该文件时对其他文件或链接所建立的链接
QAbstractFileEngine::FileType
常量,值为0x2000,该文件是一个常规文件(非链接或目录)
QAbstractFileEngine::BundleType
常量,值为0x8000,该文件是一个Mac OS x文件包,暗含目录类型的意思
QAbstractFileEngine::DirectoryType
常量,值为0x4000,该文件是一个目录。
QAbstractFileEngine::HiddenFlag
常量,值为0x0100000,该文件是被隐藏的。
QAbstractFileEngine::ExistsFlag
常量,值为0x0400000,该文件确实存在文件系统中
QAbstractFileEngine::RootFlag
常量,值为0x0800000,该文件或文件指针(快捷方式)是一个root用户建立的
QAbstractFileEngine::LocalDiskFlag
常量,值为0x0200000,该文件驻留在本地磁盘,可以传递给标准文件函数
QAbstractFileEngine::Refresh
常量,值为0x1000000,传递这个标志位会强制文件引擎刷新文件所有的标志
(或属性)
这些文件属性(标志)在QFlags<FileFlag>中定义,可以用OR联合多个标志位。


enum QAbstractFileEngine::FileName
QAbstractFileEngine::DefaultName
文件系统中已经存在相同的文件名
QAbstractFileEngine::BaseName
该文件名不包括路径名
QAbstractFileEngine::PathName
文件路径名不包括基址名(相对路径)
QAbstractFileEngine::AbsoluteName
文件的绝对路径,包括基址名
QAbstractFileEngine::AbsolutePathName
绝对路径(不包括基址名)
QAbstractFileEngine::LinkName
文件的链接名(相对名称)
QAbstractFileEngine::CanonicalName
非常类似连接名,但会返回文件的有效路径
QAbstractFileEngine::CanonicalPathName
同上,但不包括基址名
QAbstractFileEngine::BundleName
返回文件包名称,意指BundleType被设置。
这些值用于给特殊的文件取文件名

enum QAbstractFileEngine::FileTime
下面这些值被用于fileTime()函数。
QAbstractFileEngine::CreationTime
文件被创建的时间
QAbstractFileEngine::ModificationTime
文件最近被修改时对应的时间
QAbstractFileEngine::AccessTime
文件最近被访问的时间。
typedef QAbstractFileEngine::Iterator
QAbstractFileEngineIterator的同义词,在QT4.3中有被介绍


成员函数文档:
QAbstractFileEngine::QAbstractFileEngine () [protected]
创建一个 QAbstractFileEngine对象,不指向任何文件或目录

QAbstractFileEngine::~QAbstractFileEngine () [virtual]
析构函数

bool QAbstractFileEngine::atEnd () const
如果文件指针指向文件末端则返回true,否则返回false。给函数extension()传递
AtEndExtension参数来判断文件指针是否处于文件尾端时,本函数的返回值取决于具体的
操作,如果文件系统不支持该扩展类型,则返回false。

Iterator * QAbstractFileEngine::beginEntryList ( QDir::Filters filters,
const QStringList & filterNames ) [virtual]
用参数filters作实体筛选,用参数filterNames作名字筛选,
并返回一个QAbstractFileEngineIterator实体,当QDirIterator用于初始化一个目录层次
时会调用该函数。

bool QAbstractFileEngine::caseSensitive () const [virtual
如果文件系统区分大小写则返回true,否则返回false,该虚拟函数必须在所有的子类中被
重新实现

bool QAbstractFileEngine::close () [virtual
成功关闭一个文件时返回true,否则返回false。默认的执行情况总是返回false。

bool QAbstractFileEngine::copy ( const QString & newName ) [virtual]
复制当前文件的内容至参数newName所指定的文件里,成功则返回true,否则返回false

QAbstractFileEngine * QAbstractFileEngine::create ( const QString & fileName ) [static]
根据参数fileName的配置信息返回一个合适的QAbstractFileEngine对象。也可以不调用该
函数,直接用 QFile, QFileInfo, QDir替换。如果重新实现该函数,除非文件系统知道如
何处理参数fileName,否则函数返回数值0.

QStringList QAbstractFileEngine::entryList ( QDir::Filters filters,
const QStringList & filterNames ) const [virtual]
在文件系统目录里,如果文件清单可以匹配,在参数fileNames清单上上用参数filters进行筛选,则
返回它,如果文件引擎代指一个文件而不是目录,或者该目录不可读,或者不存在,或者
无任何匹配项,则都返回空的序列。
该虚拟函数必须在子类中重新实现

QFile::FileError QAbstractFileEngine::error () const
返回最近文件操作失败的相关信息(QFile::FileError)。
如果返回未知的错误信息(QFile::UnspecifiedError),QFile就会使用自身的一些与错
误相关的状态信息。

QString QAbstractFileEngine::errorString () const
返回函数error()所提供的一个可供人读懂的当前作物提示信息,如果没有可用的有效信息
则返回一个空字符串。

bool QAbstractFileEngine::extension ( Extension extension,
const ExtensionOption * option = 0, ExtensionReturn * output = 0 ) [virtual]
这个虚拟函数可在QAbstractFileEngine的子类中重新实现用以提供可支持的扩展类型,
参数option可悲用作输入扩展类型,该函数同时可以在输出中用以存储输出结果,该函数
的具体行为取决去扩展类型,可以参考扩展类型的详细描述。
也可以调用函数 supportsExtension()用来检查一个扩展类型是否被支持。
默认下,没有被支持的扩展类型,同时函数返回false。

FileFlags QAbstractFileEngine::fileFlags ( FileFlags type = FileInfoAll )
const [virtual]

返回可适用于文件系统的在成员类型中被定义的OR's(读,写,执行 权限)组合。
当该函数被重新实现时可以把参数type当着一个最优化实体,即只返回类成员雷丁定义中
可适用的类型。换句话说,可以直接忽略没有在成员类型定义中被提及的任何其他类型或
成员,因此避免耗费昂贵的资源用以来在系统中进行搜寻。
搞虚拟函数必须在所有的子类中被重新实现。

QString QAbstractFileEngine::fileName ( FileName file = DefaultName )
const [virtual]
用参数file所指定的格式返回文件系统中当前的文件名称,如果不确定是否要操作很多的
文件名称,当可以再不指定文件格式的情况下调用函数setFileName()从而返回文件名。
该虚拟函数必须在所有的子类中重新实现。

QDateTime QAbstractFileEngine::fileTime ( FileTime time ) const [virtual]
如果参数time用以指定文件创建时间,则该函数返回文件被创建时的事件。如果参数time
用以指定文件被修改的时间,则返回文件最近一次被修改的时间,如果参数time用以指定
文件被访问的时间,则函数返回文件最近一次被访问的时间。如果参数time无法指定具体
类型,则用QDateTime()返回一个无效的时间.
在子类中必须重新实现

bool QAbstractFileEngine::flush () [virtual]
刷新已被打开的文件,如果成功则返回true,否则返回false。
在子类中必须重新实现

int QAbstractFileEngine::handle () const [virtual]
返回当前文件系统所特有的文件句柄,必须小心处理该句柄,该句柄值和类型必须被系统
平台所指定,使用该函数非常容易导致不可移植的代码。

bool QAbstractFileEngine::isRelativePath () const [virtual]
如果该文件有相对路径则翻译true,否则返回false
子类必须重新实现该虚拟函数

bool QAbstractFileEngine::isSequential () const [virtual]
如果该文件是一个顺序访问设备则返回true,如果文件是可被直接访问设备返回false
函数size()和seek(int)不支持连续访问设备。(必须磁带式顺序访问,磁盘可随机访问)

bool QAbstractFileEngine::link ( const QString & newName ) [virtual]
通过函数fileName()返回的当前文件创建一个参数newName指定的链接,该链接是依赖于
系统支持的(类似于windows的快捷方式和UNIX的符号链接)。成功则返回true,
否则返回false。

uchar * QAbstractFileEngine::map ( qint64 offset, qint64 size,
QFile::MemoryMapFlags flags )
在内存offset指定的偏移位置创建文件SIZE大小的一个映射,如果成功则返回指向该内存
位置的指针,比如出现错误时则返回false。
该函数的行为取决于给extension()所传递的MapExtensionOption参数,如果文件系统
不支持该扩展类型,则返回数值0.
参数flags当前未被使用,留作将来或许会被使用。

bool QAbstractFileEngine::mkdir ( const QString & dirName,
bool createParentDirectories ) const [virtual]
目录参数dirName必须已被创建。如果参数createParentDirectories为true,那么参数
dirName中任何子路径名都必须被创建。如果参数createParentDirectories为false,那么
参数dirName中的rene子路径名必须已经存在,这样函数才能成功执行。如果操作成功则
返回true,否则返回false.
子类必须重新实现该虚拟函数

bool QAbstractFileEngine::open ( QIODevice::OpenMode mode ) [virtual]
用指定的模式打开文件,成功则返回true,否则返回false.
参数mode可以是QIODevice::OpenMode 和 QIODevice::HandlingMode的或(OR)操作组合

QString QAbstractFileEngine::owner ( FileOwner owner ) const [virtual]
如果参数owner是oWnerUser则返回文件拥有者的用户名,如果owner是OwnerGroup,则返回
文件被创建的组名。如果未指定参数owner则返回QString().
子类必须重新实现该虚拟函数。

uint QAbstractFileEngine::ownerId ( FileOwner owner ) const [virtual]
如果参数owner是OwnerUser则返回文件拥有者的ID,如果是OwnerGroup则返回组ID,如果
为指定参数owner则返回-2.
子类必须重新实现该虚拟函数

qint64 QAbstractFileEngine::pos () const [virtual]
返回文件指针的当前位置,该位置是指在读/写文件时,文件指针距离文件头的位置。

qint64 QAbstractFileEngine::read ( char * data, qint64 maxlen ) [virtual]
从当前文件读取一定数量的数据写入参数data指定的文件,最多可读取参数maxlen指定的
字符数。如果发生灾难性错误则返回-1,如果当前文件无任何字节可被读取则返回数字0

qint64 QAbstractFileEngine::readLine ( char * data, qint64 maxlen ) [virtual]
以'n'为终止符从当前文件读取一行字符写入参数data指定的文件,最多可读取maxlen个
字符数,也包括终止符'n'

bool QAbstractFileEngine::remove () [virtual]
从文件系统中删除当前文件,操作成功则返回true,否则返回false。

bool QAbstractFileEngine::rename ( const QString & newName ) [virtual]
给当前文件重命名为newName,成功则返回true,否则返回false

bool QAbstractFileEngine::rmdir ( const QString & dirName,
bool recurseParentDirectories ) const [virtual]
从文件系统中删除dieName目录,当recurseParentDirectories为有效路径时,dirName中
包含的任何空的父路径都会被删除。如果recurseParentDirectories为无效,则只删除
dirName中包含的子路径。在大多数文件系统中,如果当前目录非空,则无法用本函数
执行删除动作。如果函数执行成功则返回true,否则返回false.

bool QAbstractFileEngine::seek ( qint64 offset ) [virtual]
用给定的参数offset设定文件的位置,成功则返回true,否则返回false。
offset必须是从文件的开始部分算起,除非赶文件是连续的文件。

void QAbstractFileEngine::setError ( QFile::FileError error,
const QString & errorString ) [protected]

用参数error设定错误类型,参数与errorString设定字符串错误类型。该函数设定的错误
通常用于更高级别的类用于返回错误。

void QAbstractFileEngine::setFileName ( const QString & file ) [virtual]
用参数file设定文件名,所传递的文件名(参数file)必须在其他的虚拟函数下执行。
意思是说该虚拟函数内还会调用另外一个虚拟函数,并传递参数file.

bool QAbstractFileEngine::setPermissions ( uint perms ) [virtual]
给参数perms设定文件访问权限.
参数perms可以是(RWX)和QAbstractFileEngine::FileInfo操作组合。
且必须是被 QAbstractFileEngine::PermsMask 所认可的。成功则返回true,
否则返回false

bool QAbstractFileEngine::setSize ( qint64 size ) [virtual]
设定文件的大小为参数size指定的大小,如果参数size大于当前文件则追加0用以填充,
如果小于当前文件则简单的截断。操作成功则返回true,否则返回false.

qint64 QAbstractFileEngine::size () const [virtual]
返回文件大小。

bool QAbstractFileEngine::supportsExtension ( Extension extension )
const [virtual]
如果文件系统支持参数extension指定的扩展类型则返回true,否则返回false。
默认情况下,不支持任何扩展类型。

bool QAbstractFileEngine::unmap ( uchar * address )
撤销文件到内存映射的内存映射地址,成功则返回true,否则返回false
该函数的行为取决于调用extension()函数所传递夫人UmMapExtensionOption参数。
如果文件系统不支持该扩展类型则返回false.

qint64 QAbstractFileEngine::write ( const char * data, qint64 len ) [virtual]
从data中读取len字节写入到文件中,成功时放回写入的字符数,失败则返回-1

typedef QAbstractFileEngine::Iterator
QAbstractFileEngineIterator的同义词。

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: