Home · All Classes · Modules  · QSS HELP  · QSS 案例 · VER007 HOME

QFileInfo Class Reference
[QtCore module]

该QFileInfo类提供了与系统无关的文件信息。More...

Methods

Special Methods


Detailed Description

该QFileInfo类提供了与系统无关的文件信息。

QFileInfo提供有关在文件系统中,其访问权限的文件的名称和位置(路径),以及它是否是一个目录或符号链接等,该文件的大小和最后修改/读取时间也可提供信息。 QFileInfo也可用于获得关于一个Qt信息resource

一个QFileInfo可以指向一个文件,相对或绝对文件路径。绝对文件路径开头的目录分隔符“/” (或在Windows的驱动器规格) 。相对文件名开头的目录名或文件名和路径指定一个相对于当前工作目录。绝对路径的一个例子是字符串“ / tmp目录/石英” 。相对路径可能看起来像“的src / fatlib ” 。您可以使用该功能isRelative()来检查一个QFileInfo是否使用相对或绝对文件路径。你可以调用函数makeAbsolute( )为相对QFileInfo的路径转换为绝对路径。

该QFileInfo工程对文件设置在构造函数或更高版本setFile( ) 。使用exists()来查看文件是否存在和size()来获取它的大小。

该文件的类型与获得isFile( )isDir()和isSymLink( ) 。该symLinkTarget()函数提供的文件名称的符号链接指向。

在Unix系统(包括Mac OS X ) ,符号链接具有相同的size( )有它指向的文件,因为Unix的处理符号链接透明,同样,使用打开一个符号链接QFile有效地打开链接的目标。例如:

 #ifdef Q_OS_UNIX

 QFileInfo info1("/home/bob/bin/untabify");
 info1.isSymLink();          // returns true
 info1.absoluteFilePath();   // returns "/home/bob/bin/untabify"
 info1.size();               // returns 56201
 info1.symLinkTarget();      // returns "/opt/pretty++/bin/untabify"

 QFileInfo info2(info1.symLinkTarget());
 info2.isSymLink();          // returns false
 info2.absoluteFilePath();   // returns "/opt/pretty++/bin/untabify"
 info2.size();               // returns 56201

 #endif

在Windows中,符号链接(快捷方式)是.lnk文件。报导size( )是符号链接(而不是链接的目标) ,并用打开一个符号链接QFile打开.lnk文件中。例如:

 #ifdef Q_OS_WIN

 QFileInfo info1("C:\\Documents and Settings\\Bob\\untabify.lnk");
 info1.isSymLink();          // returns true
 info1.absoluteFilePath();   // returns "C:/Documents and Settings/Bob/untabify.lnk"
 info1.size();               // returns 743
 info1.symLinkTarget();      // returns "C:/Pretty++/untabify"

 QFileInfo info2(info1.symLinkTarget());
 info2.isSymLink();          // returns false
 info2.absoluteFilePath();   // returns "C:/Pretty++/untabify"
 info2.size();               // returns 63942

 #endif

该文件的名称的元素可以与被提取path()和fileName( ) 。该fileName()的部分可以与要提取baseName( )suffix()或completeSuffix( ) 。 QFileInfo对象由Qt类创建的目录不会有拖尾文件分隔符。如果您想使用尾随分隔符在自己的文件信息对象,只是附加一个以提供给构造函数的文件名或setFile( ) 。

该文件的日期被退回created( )lastModified()和lastRead( ) 。对文件的访问权限的信息与获得isReadable( )isWritable()和isExecutable( ) 。该文件的所有权可从owner( )ownerId( )group()和groupId( ) 。您可以检查使用单个语句的文件的权限和所有权permission()函数。

Performance Issues

一些QFileInfo的功能查询文件系统,但由于性能原因,一些功能只对文件名本身运作。例如:要返回一个相对的文件名的绝对路径,absolutePath( )具有查询的文件系统。该path()函数,但是,可以在文件名直接工作,所以它比较快。

Note:为了提高性能, QFileInfo缓存有关文件的信息。

为了提高性能, QFileInfo缓存有关文件的信息。因为文件可以由其他用户或程序,甚至由同一程序的其他部分被改变,有一个函数,刷新该文件的信息:refresh( ) 。如果你想关掉一个QFileInfo的缓存,并迫使它每次请求来自它的信息,请拨打setCaching (假)的时间来访问文件系统。


Method Documentation

QFileInfo.__init__ (self)

构造一个空QFileInfo对象。

注意,空QFileInfo对象不包含任何文件的引用。

See also setFile( ) 。

QFileInfo.__init__ (self, QString file)

QFileInfo.__init__ (self, QFile file)

构造一个新的QFileInfo,提供有关给定文件的信息。该file还可以包括绝对或相对路径。

See also setFile( )isRelative( )QDir.setCurrent()和QDir.isRelativePath( ) 。

QFileInfo.__init__ (self, QDir dir, QString file)

构造一个新的QFileInfo,提供有关文件的信息file

如果file有一个相对路径,QFileInfo也将有一个相对路径。

See also isRelative( ) 。

QFileInfo.__init__ (self, QFileInfo fileinfo)

构造一个新的QFileInfo这提供了有关提供信息file在目录dir

If dir有一个相对路径,QFileInfo也将有一个相对路径。

If file是一个绝对路径,然后将目录指定dir将被忽略。

See also isRelative( ) 。

QDir QFileInfo.absoluteDir (self)

返回文件的绝对路径作为QDir对象。

See also dir( )filePath( )fileName()和isRelative( ) 。

QString QFileInfo.absoluteFilePath (self)

返回包含文件名的绝对路径。

绝对路径名包含完整路径和文件名。在Unix上,这将始终以根, '/' ,目录中。在Windows中,这将总是从'D :/ ',其中D是一个驱动器盘符,惟未映射到一个驱动器盘符,在这种情况下,路径将开始“ / /共享名/ ”网络共享。QFileInfo将大写的驱动器号。需要注意的是QDir不这样做。下面的代码片段显示了这一点。

     QFileInfo fi("c:/temp/foo"); => fi.absoluteFilePath() => "C:/temp/foo"

该函数返回相同filePath( ) ,除非isRelative()是真实的。在对比canonicalFilePath( ) ,符号链接或多馀的“ 。 ”或“..”的元件不一定除去。

如果QFileInfo是空的,返回QDir.currentPath( ) 。

See also filePath( )canonicalFilePath()和isRelative( ) 。

QString QFileInfo.absolutePath (self)

返回一个文件的路径,绝对路径。这不包括文件名。

在Unix上的绝对路径将始终以根, '/' ,目录中。在Windows中,这将总是从'D :/ ',其中D是一个驱动器盘符,惟未映射到一个驱动器盘符,在这种情况下,路径将开始“ / /共享名/ ”网络共享。

在对比canonicalPath( )符号链接或多馀的“ 。 ”或“..”的元件不一定除去。

Warning:如果QFileInfo对象是一个空的创建QString,这个函数的行为是未定义的。

See also absoluteFilePath( )path( )canonicalPath( )fileName()和isRelative( ) 。

QString QFileInfo.baseName (self)

返回文件的基本名不带路径。

基本名称组成,在该文件的所有字符(但不包括)first'。'字符。

例如:

 QFileInfo fi("/tmp/archive.tar.gz");
 QString base = fi.baseName();  // base = "archive"

文件的基本名称在所有平台上,独立的文件命名约定的同样计算(例如,“ 。 bashrc中”在Unix上有一个空基地名称,后缀是“ bashrc中” ) 。

See also fileName( )suffix( )completeSuffix()和completeBaseName( ) 。

QString QFileInfo.bundleName (self)

返回包的名称。

在Mac OS X这个返回正确的本地化名称的包,如果路径isBundle( ) 。在所有其他平台的空QString返回。

例如:

 QFileInfo fi("/Applications/Safari.app");
 QString bundle = fi.bundleName();                // name = "Safari"

此功能被引入Qt的4.3 。

See also isBundle( )filePath( )baseName()和extension( ) 。

bool QFileInfo.caching (self)

返回True如果缓存被启用,否则返回False 。

See also setCaching()和refresh( ) 。

QString QFileInfo.canonicalFilePath (self)

返回规范路径包括文件名,不带符号链接或冗馀,即绝对路径“ 。 ”或“..”元素。

如果文件不存在, canonicalFilePath ( )返回一个空字符串。

See also filePath( )absoluteFilePath()和dir( ) 。

QString QFileInfo.canonicalPath (self)

返回文件的路径规范的路径(不包括文件名) ,即一个绝对路径,而符号链接或多馀的“ 。 ”或“..”元素。

如果文件不存在, canonicalPath ( )返回一个空字符串。

See also path()和absolutePath( ) 。

QString QFileInfo.completeBaseName (self)

返回文件的完整的基本名称不包含路径。

完整的基本名称包含在该文件的所有字符(但不包括)last'。'字符。

例如:

 QFileInfo fi("/tmp/archive.tar.gz");
 QString base = fi.completeBaseName();  // base = "archive.tar"

See also fileName( )suffix( )completeSuffix()和baseName( ) 。

QString QFileInfo.completeSuffix (self)

返回文件的完整的后缀。

完整的后缀由文件中的所有字符后(但不包括)第一个'。' 。

例如:

 QFileInfo fi("/tmp/archive.tar.gz");
 QString ext = fi.completeSuffix();  // ext = "tar.gz"

See also fileName( )suffix( )baseName()和completeBaseName( ) 。

QDateTime QFileInfo.created (self)

返回创建文件时的日期和时间。

在大多数Unix系统中,这个函数返回的最后一个状态改变的时间。在创建文件时,会出现一个状态的变化,但每当用户写入或设置inode信息(例如,更改文件的权限),它也发生。

如果没有创建时间,也不是“最后的状态改变”的时间不可用,则返回相同lastModified( ) 。

See also lastModified()和lastRead( ) 。

QDir QFileInfo.dir (self)

返回该对象的父目录的路径作为QDir对象。

Note:QDir总是返回对应于该对象的父目录,即使QFileInfo表示一个目录。

对于每个下面,目录中( )返回一个QDir"~/examples/191697"

     QFileInfo fileInfo1("~/examples/191697/.");
     QFileInfo fileInfo2("~/examples/191697/..");
     QFileInfo fileInfo3("~/examples/191697/main.cpp");

对于每个下面,目录中( )返回一个QDir"."

     QFileInfo fileInfo4(".");
     QFileInfo fileInfo5("..");
     QFileInfo fileInfo6("main.cpp");

See also absolutePath( )filePath( )fileName( )isRelative()和absoluteDir( ) 。

bool QFileInfo.exists (self)

返回True如果该文件存在,否则返回False 。

Note:如果该文件是一个符号链接指向一个不存在的文件,则返回False。

QString QFileInfo.fileName (self)

返回该文件的名称,但不包括路径。

例如:

 QFileInfo fi("/tmp/archive.tar.gz");
 QString name = fi.fileName();                // name = "archive.tar.gz"

需要注意的是,如果此QFileInfo对象是由于在斜线结束路径,文件名被认为是空的。

See also isRelative( )filePath( )baseName()和extension( ) 。

QString QFileInfo.filePath (self)

返回文件名,包括路径(其可以是绝对的或相对的) 。

See also absoluteFilePath( )canonicalFilePath()和isRelative( ) 。

QString QFileInfo.group (self)

返回该文件的组。在Windows上,在那里的文件并没有团体系统,或者如果发生错误,则返回一个空字符串。

这个功能可以一次Unix下消耗(以毫秒为单位的顺序) 。

See also groupId( )owner()和ownerId( ) 。

int QFileInfo.groupId (self)

返回文件所属的组的id 。

在Windows和地方文件没有组此功能的系统总是返回( UINT )-2 。

See also group( )owner()和ownerId( ) 。

bool QFileInfo.isAbsolute (self)

返回True如果文件路径名是绝对的,否则,如果是相对路径返回False 。

See also isRelative( ) 。

bool QFileInfo.isBundle (self)

返回True如果该对象指向一个包,或在Mac OS X上捆绑一个符号链接,否则返回False 。

此功能被引入Qt的4.3 。

See also isDir( )isSymLink()和isFile( ) 。

bool QFileInfo.isDir (self)

返回True如果该对象指向一个目录或一个目录的符号链接,否则返回False 。

See also isFile( )isSymLink()和isBundle( ) 。

bool QFileInfo.isExecutable (self)

返回True如果文件是可执行文件,否则返回False 。

See also isReadable( )isWritable()和permission( ) 。

bool QFileInfo.isFile (self)

返回True如果该对象指向一个文件或一个文件的符号链接。返回False如果对象指向的东西是不是一个文件,如目录。

See also isDir( )isSymLink()和isBundle( ) 。

bool QFileInfo.isHidden (self)

返回True如果这是一个'隐藏'的文件,否则返回False 。

Note:对于特殊条目此函数返回True “ 。 ”在Unix和“..” ,即使QDir.entryList威胁他们,如图所示。

bool QFileInfo.isReadable (self)

返回True ,如果用户可以读取该文件,否则返回False 。

See also isWritable( )isExecutable()和permission( ) 。

bool QFileInfo.isRelative (self)

返回True如果文件路径名是相对的,否则返回False,如果是绝对路径( Unix下如一个路径是绝对的,如果它始于一个“/”) 。

See also isAbsolute( ) 。

bool QFileInfo.isRoot (self)

返回True如果对象指向一个目录或一个符号链接到一个目录,该目录是根目录,否则返回False 。

bool QFileInfo.isSymLink (self)

返回True如果该对象指向一个符号链接(或在Windows上的快捷方式),否则返回False 。

在Unix系统(包括Mac OS X ) ,打开一个符号链接有效打开link's target。在Windows上,它打开.lnk文件本身。

例如:

 QFileInfo info(fileName);
 if (info.isSymLink())
     fileName = info.symLinkTarget();

Note:如果符号链接指向一个不存在的文件,exists( )返回False 。

See also isFile( )isDir()和symLinkTarget( ) 。

bool QFileInfo.isWritable (self)

返回True如果用户可以写入文件,否则返回False 。

See also isReadable( )isExecutable()和permission( ) 。

QDateTime QFileInfo.lastModified (self)

返回时,该文件最后修改的日期和时间。

See also created()和lastRead( ) 。

QDateTime QFileInfo.lastRead (self)

返回的日期和时间当文件上次读取(访问) 。

在平台上,其中该信息不可用,则返回相同lastModified( ) 。

See also created()和lastModified( ) 。

bool QFileInfo.makeAbsolute (self)

该文件的路径,以绝对路径转换,如果它不是已以这样的形式。返回True表示该路径被转换,否则返回False,表示该路径已经是绝对的。

See also filePath()和isRelative( ) 。

QString QFileInfo.owner (self)

返回文件的所有者。对其中的文件没有所有者的系统,或者如果发生错误,则返回一个空字符串。

这个功能可以一次Unix下消耗(以毫秒为单位的顺序) 。

See also ownerId( )group()和groupId( ) 。

int QFileInfo.ownerId (self)

返回文件的所有者的ID。

在Windows和文件的地方没有业主该函数返回系统( ( UINT ) -2) 。

See also owner( )group()和groupId( ) 。

QString QFileInfo.path (self)

bool QFileInfo.permission (self, QFile.Permissions permissions)

测试文件的权限。该permissions参数可以是类型的几个标志QFile.Permissions或 - 编在一起来检查权限的组合。

对其中的文件没有权限这个功能系统总是返回True 。

例如:

 QFileInfo fi("/tmp/archive.tar.gz");
 if (fi.permission(QFile.WriteUser | QFile.ReadGroup))
     qWarning("I can change the file; my group can read the file");
 if (fi.permission(QFile.WriteGroup | QFile.WriteOther))
     qWarning("The group or others can change the file");

See also isReadable( )isWritable()和isExecutable( ) 。

QFile.Permissions QFileInfo.permissions (self)

返回的完整或的结果组合在一起QFile.Permissions对于该文件。

QString QFileInfo.readLink (self)

QFileInfo.refresh (self)

刷新有关该文件的信息,即信息从文件系统中读取下一个时间缓存的属性是牵强。

Note:在Windows CE上,有可能会有延迟的文件系统驱动程序来检测文件的变化。

QFileInfo.setCaching (self, bool on)

If enable为True,则启用文件信息缓存。如果enable是假的缓存被禁用。

当启用缓存,QFileInfo从第一次需要它的文件系统读取文件信息,但一般不晚。

缓存是默认启用的。

See also refresh()和caching( ) 。

QFileInfo.setFile (self, QString file)

设置文件的QFileInfo提供有关信息file

file还可以包括绝对或相对文件路径。绝对路径开头的目录分隔符(如“/”在Unix下)或驱动器规范( Windows下) 。相对文件名开头的目录名或文件名和路径指定一个相对于当前目录。

例如:

 QString absolute = "/local/bin";
 QString relative = "local/bin";
 QFileInfo absFile(absolute);
 QFileInfo relFile(relative);

 QDir.setCurrent(QDir.rootPath());
 // absFile and relFile now point to the same file

 QDir.setCurrent("/tmp");
 // absFile now points to "/local/bin",
 // while relFile points to "/tmp/local/bin"

See also isFile( )isRelative( )QDir.setCurrent()和QDir.isRelativePath( ) 。

QFileInfo.setFile (self, QFile file)

这是一个重载函数。

设置文件的QFileInfo提供有关信息file

If file包含相对路径,QFileInfo也将有一个相对路径。

See also isRelative( ) 。

QFileInfo.setFile (self, QDir dir, QString file)

这是一个重载函数。

设置文件的QFileInfo提供有关信息file目录dir

If file包含相对路径,QFileInfo也将有一个相对路径。

See also isRelative( ) 。

int QFileInfo.size (self)

返回以字节为单位的文件大小。如果文件不存在或无法获取的,则返回0 。

See also exists( ) 。

QString QFileInfo.suffix (self)

返回文件的后缀。

后缀组成的文件中的所有字符后(但不包括)最后一个'。' 。

例如:

 QFileInfo fi("/tmp/archive.tar.gz");
 QString ext = fi.suffix();  // ext = "gz"

文件的后缀在所有平台上,独立的文件命名约定的同样计算(例如,“ 。 bashrc中”在Unix上有一个空基地名称,后缀是“ bashrc中” ) 。

See also fileName( )completeSuffix( )baseName()和completeBaseName( ) 。

QString QFileInfo.symLinkTarget (self)

返回绝对路径的文件或目录的符号链接(或快捷方式在Windows上)指向,或者一个空字符串,如果该对象不是一个符号链接。

这个名字可能并不代表现有的文件,它只是一个字符串。QFileInfo.exists( )返回True ,如果符号链接指向现有的文件。

这个函数中引入了Qt 4.2中。

See also exists( )isSymLink( )isDir()和isFile( ) 。

bool QFileInfo.__eq__ (self, QFileInfo fileinfo)

bool QFileInfo.__ne__ (self, QFileInfo fileinfo)




PyQt 4.10.3 for X11 Copyright © Riverbank Computing Ltd and Nokia 2012 Qt 4.8.5