分类: LINUX
2011-05-17 10:27:39
也可以参考currentDirPath()。
QDir::QDir ( const QString & path, const QString & nameFilter = QString::null, int sortSpec = Name | IgnoreCase, int filterSpec = All )构造一个路径为path、名称过滤器为nameFilter并且属性过滤器为filterSpec的QDir。它也使用sortSpec来排列名称。默认的nameFilter是一个空字符串,不包含任何东西,默认的filterSpec是All,也就是说也不包含任何东西。默认的sortSpec是Name|IgnoreCase,也就是说不区分大小写按名称排序。
下面是列出“/tmp”中所有文件的实例:
QDir d( "/tmp" ); for ( int i = 0; i < d.count(); i++ ) printf( "%s\n", d[i] );如果path为“”或零,QDir使用“.”(当前目录)。如果nameFilter为“”或零,QDir使用“*”(所有文件)。
注意path不需要存在。
也可以参考exists()、setPath()、setNameFilter()、setFilter()和setSorting()。
QDir::QDir ( const QDir & d )构造一个目录d的复制的QDir。也可以参考operator=()。
QDir::~QDir () [虚]销毁QDir并且释放它的资源。QString QDir::absFilePath ( const QString & fileName, bool acceptAbsPath = TRUE ) const [虚]返回路径中一个文件的绝对路径名称。不检查这个文件是否真的存在于这个目录中。在fileName中多余的分隔符或者“.”和“..”目录将被移除(请参考cleanDirPath())。如果acceptAbsPath为真,由分隔符“/”开始的fileName将会被不改变地立即返回。如果acceptAbsPath为假,绝对路径将被被加到fileName的前面并且结果字符串被返回。
也可以参考filePath()。
QString QDir::absPath () const [虚]返回绝对路径(一个由“/”或驱动器标识开始的路径),可能包含符号连接,但是不会包含“.”、“..”或者多个分隔符。也可以参考setPath()、canonicalPath()、exists()、cleanDirPath()、dirName()和absFilePath()。
实例:fileiconview/qfileiconview.cpp。
QString QDir::canonicalPath () const [虚]返回规范的路径,也就是没有符号连接或者多余的“.”、“..”元素的路径。在没有符号连接的系统上,这个函数总是返回和absPath()返回值一样的值。如果规范路径不存在(通常是因为挂起的符号连接)。
也可以参考path()、absPath()、exists()、cleanDirPath()、dirName()、absFilePath()和QString::isNull()。
bool QDir::cd ( const QString & dirName, bool acceptAbsPath = TRUE ) [虚]改变QDir的目录为dirName。如果acceptAbsPath为真,由分隔符“/”开始的路径将会导致这个函数改变到这个绝对路径。如果acceptAbsPath为假,dirName前面的任何数量的分隔符都将被移除并且这个函数将会进入到dirName中。
如果新的路径存在并且是可读的,返回真。注意如果新的目录不存在,逻辑上的cd()操作不会被执行。
调用cd( ".." )等于调用cdUp()。
也可以参考cdUp()、isReadable()、exists()和path()。
实例:fileiconview/mainwindow.cpp。
bool QDir::cdUp () [虚]改变目录为QDir的当前目录的上一级目录。如果新的路径存在并且是可读的,返回真。注意如果新的目录不存在,逻辑上的cdUp()操作不会被执行。
也可以参考cd()、isReadable()、exists()和path()。
QString QDir::cleanDirPath ( const QString & filePath ) [静态]移除filePath的多重目录分隔符“/”并且解析其中的“.”或者“..”。符号连接会被保留。这个函数不返回规范路径,但会是输入的最简化的版本。“./local”变为“local”、“local/../bin”变为“bin”并且“/local/usr/../bin”变为“/local/bin”。
也可以参考absPath()和canonicalPath()。
QString QDir::convertSeparators ( const QString & pathName ) [静态]把pathName里面的“/”分隔符转化为适用于底层操作系统的分隔符。返回转化的字符串。在Windows上,convertSeparators("c:/winnt/system32")返回“c:\winnt\system32”。
在一些操作系统上,例如在Unix上,返回的字符串可能和参数是一样的。
void QDir::convertToAbs () [虚]把目录路经转化为绝对路径。如果它已经是绝对路径了,就什么也不做。也可以参考isRelative()。
uint QDir::count () const返回找到的目录和文件的数量。Equivalent to entryList()。count()。
也可以参考operator[]()和entryList()。
QDir QDir::current () [静态]返回应用程序当前目录。使用path()来访问QDir对象的路径。
也可以参考currentDirPath()和QDir::QDir()。
QString QDir::currentDirPath () [静态]返回应用程序当前目录的绝对路径。也可以参考current()。
实例:helpviewer/helpwindow.cpp和qdir/qdir.cpp。
QString QDir::dirName () const [虚]返回目录的名称,这和路径是不同的,例如一个名称为“mail”的目录,也许路径为“/var/spool/mail”。如果目录没有名字(例如,它是根目录),一个零字符串被返回。不会执行检测来确保这个名称的目录真正存在。
也可以参考path()、absPath()、absFilePath()、exists()和QString::isNull()。
const QFileInfoList * QDir::drives () [静态]返回这个系统中根目录的列表。在Windows中,这将返回许多包含“”、“”等等的QFileInfo对象。在其它操作系统,它返回的是只包含一个根目录(例如“/”)的列表。返回的指针的所有权归Qt。调用者不要删除或者修改它。
实例:dirview/main.cpp。
QStrList QDir::encodedEntryList ( int filterSpec = DefaultFilter, int sortSpec = DefaultSort ) const [虚]这个函数是废弃的。它的提供只是为了保证旧代码能够工作。我们强烈建议在新代码中不要使用它。
这个函数被包含是因为可以很容易地从Qt 1.x移植到Qt 3.0,它和entryList()是一样地,但是文件名的编码方式是使用QFile::encodedName()的8位字符串。
使用它比使用entryList()更有效率。
QStrList QDir::encodedEntryList ( const QString & nameFilter, int filterSpec = DefaultFilter, int sortSpec = DefaultSort ) const [虚]这个函数是废弃的。它的提供只是为了保证旧代码能够工作。我们强烈建议在新代码中不要使用它。
这是一个重载成员函数,用于提供方便。它的行为基于上面的函数。
这个函数被包含是因为可以很容易地从Qt 1.x移植到Qt 3.0,它和entryList()是一样地,但是文件名的编码方式是使用QFile::encodedName()的8位字符串。
使用它比使用entryList()更有效率。
const QFileInfoList * QDir::entryInfoList ( const QString & nameFilter, int filterSpec = DefaultFilter, int sortSpec = DefaultSort ) const [虚]返回这个目录中所有目录和文件的QFileInfo对象的列表,根据setSorting()排序并且根据setFilter()和setNameFilter()进行过滤。过滤器和排序的规定可以使用nameFilter、filterSpec和sortSpec参数来指定。
如果这个目录是不可读的或者不存在,返回0。
返回的指针是一个指向QFileInfoList的常量指针。这个列表归QDir对象所有并且将会在同一个QDir实例下次调用entryInfoList()时被重新使用。如果你想在调用这个函数之后保留这个列表的条目,你将需要复制它们。
也可以参考entryList()、setNameFilter()、setSorting()和setFilter()。
实例:dirview/dirview.cpp和fileiconview/qfileiconview.cpp。
const QFileInfoList * QDir::entryInfoList ( int filterSpec = DefaultFilter, int sortSpec = DefaultSort ) const [虚]这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。返回这个目录中所有目录和文件的QFileInfo对象的列表,根据setSorting()排序并且根据setFilter()和setNameFilter()进行过滤。
过滤器和排序的规定可以使用filterSpec和sortSpec参数来指定。
如果这个目录是不可读的或者不存在,返回0。
返回的指针是一个指向QFileInfoList的常量指针。这个列表归QDir对象所有并且将会在同一个QDir实例下次调用entryInfoList()时被重新使用。如果你想在调用这个函数之后保留这个列表的条目,你将需要复制它们。
也可以参考entryList()、setNameFilter()、setSorting()和setFilter()。
QStringList QDir::entryList ( const QString & nameFilter, int filterSpec = DefaultFilter, int sortSpec = DefaultSort ) const [虚]返回这个目录中所有目录和文件的名称的列表,根据setSorting()排序并且根据setFilter()和setNameFilter()进行过滤。过滤器和排序的规定可以使用nameFilter、filterSpec和sortSpec参数来指定。
如果这个目录是不可读的或者不存在,返回空的列表。。
也可以参考entryInfoList()、setNameFilter()、setSorting()和setFilter()。
实例:table/statistics/statistics.cpp。
QStringList QDir::entryList ( int filterSpec = DefaultFilter, int sortSpec = DefaultSort ) const [虚]这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。返回这个目录中所有目录和文件的名称的列表,根据setSorting()排序并且根据setFilter()和setNameFilter()进行过滤。
过滤器和排序的规定可以使用filterSpec和sortSpec参数来指定。
如果这个目录是不可读的或者不存在,返回空的列表。。
也可以参考entryInfoList()、setNameFilter()、setSorting()和setFilter()。
bool QDir::exists ( const QString & name, bool acceptAbsPath = TRUE ) [虚]检查文件name的存在性。如果acceptAbsPath为真,由分隔符“/”开始的路径将会使用绝对路径检查这个文件。如果acceptAbsPath为假,name开始的任何数量的分隔符将会被移除并且结果文件名将被检查。
如果文件存在,返回真,否则返回假。
也可以参考QFileInfo::exists()和QFile::exists()。
bool QDir::exists () const [虚]这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。如果directory存在,返回真。(如果发现一个同名的文件,这个函数将返回假)。
也可以参考QFileInfo::exists()和QFile::exists()。
QString QDir::filePath ( const QString & fileName, bool acceptAbsPath = TRUE ) const [虚]返回目录中一个文件的路径名称。不检查这个文件是否真的存在于这个目录中。如果QDir是相对的,返回的路径名称也是相对的。fileName中多余的多重分隔符或者“.”和“..”目录将被移除(请参考cleanDirPath())。如果acceptAbsPath为真,由分隔符“/”开始的fileName将会被不改变地立即返回。如果acceptAbsPath为假,绝对路径将被被加到fileName的前面并且结果字符串被返回。
也可以参考absFilePath()、isRelative()和canonicalPath()。
FilterSpec QDir::filter () const返回由setFilter()设置的值。QDir QDir::home () [静态]返回主目录。在Windows NT/2000下,这个函数通过连接HOMEDRIVE和HOMEPATH环境变量来形成这个路径。
在Windows 9x和非Windows操作系统,HOME环境变量被使用。
如果这个环境变量没有被设置,rootDirPath()用来代替它。
也可以参考homeDirPath()。
QString QDir::homeDirPath () [静态]返回用户的主目录的绝对路径。
也可以参考home()。
bool QDir::isReadable () const [虚]如果目录是可读的并且我们可以通过名称打开文件,返回真。如果只有上述一个条件存在,这个函数返回假。 警告: 这个函数返回的假并不保证这个目录不可访问。也可以参考QFileInfo::isReadable()。
实例:dirview/dirview.cpp和fileiconview/qfileiconview.cpp。
bool QDir::isRelative () const [虚]如果目录路径是相对于当前路径的,返回真,并且如果路径是绝对的(例如在Unix下,一个路径如果没有以“/”开始就是相对的),返回假。也可以参考convertToAbs()。
bool QDir::isRelativePath ( const QString & path ) [静态]如果path是相对的,返回真,如果它是绝对的,返回假。也可以参考isRelative()。
bool QDir::isRoot () const [虚]如果目录是根目录,返回真,否则返回假。注意:如果目录是一个连接到根目录的符号连接,这个函数返回假。如果你想测试这一点,你可以使用canonicalPath():
实例:
QDir d( "/tmp/root_link" ); d = d.canonicalPath(); if ( d.isRoot() ) qWarning( "It IS a root link!" );也可以参考root()和rootDirPath()。
bool QDir::match ( const QString & filter, const QString & fileName ) [静态]如果fileName与通配符模式filter匹配,返回真。filter也可以包含由空格或者分号分割的多个模式。(请参考QRegExp通配符匹配。)
也可以参考QRegExp::match()。
bool QDir::match ( const QStringList & filters, const QString & fileName ) [静态]这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。如果fileName与列表filters中的通配符模式匹配,返回真。
(请参考QRegExp通配符匹配。)
也可以参考QRegExp::match()。
bool QDir::matchAllDirs () const返回由setMatchAllDirs()设置的值。也可以参考setMatchAllDirs()。
bool QDir::mkdir ( const QString & dirName, bool acceptAbsPath = TRUE ) const [虚]创建一个目录。如果acceptAbsPath为真,由分隔符“/”开始的dirName将会被不改变地立即返回。如果acceptAbsPath为假,dirName的开始的任意个分隔符将被移除。
如果成功,返回真,否则返回假。
也可以参考rmdir()。
QString QDir::nameFilter () const返回由setNameFilter()设置的字符串。bool QDir::operator!= ( const QDir & d ) const [虚]如果目录d和这个目录是不同的路径或者不同的排序或过滤器设置,返回真,否则返回假。实例:
// 当前目录为“/usr/local” QDir d1( "/usr/local/bin" ); QDir d2( "bin" ); if ( d1 != d2 ) qDebug( "They differ\n" ); // 这是被打印的 QDir & QDir::operator= ( const QDir & d )完成一个QDir d的复制并且把它赋给这个QDir。QDir & QDir::operator= ( const QString & path )这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。设置这个目录的路径为给定的path。
bool QDir::operator== ( const QDir & d ) const [虚]如果目录d和这个目录有相同的路径、相同的排序和过滤器,返回真,否则返回假。实例:
// 当前目录为“/usr/local” QDir d1( "/usr/local/bin" ); QDir d2( "bin" ); d2.convertToAbs(); if ( d1 == d2 ) qDebug( "They're the same\n" ); // 这是被打印的 QString QDir::operator[] ( int index ) const返回在文件名列表的index位置的文件名。等于entryList().at(index)。如果index超出范围或者entryList()函数失败,返回一个零字符串。
QString QDir::path () const [虚]返回这个路径,这也许包含符号连接,但决不会包含多余的“.”、“..”或者多重分隔符。返回的路径可能是相对的也可能是绝对的(请参考setPath())。
也可以参考setPath()、absPath()、exists()、cleanDirPath()、dirName()、absFilePath()和convertSeparators()。
bool QDir::remove ( const QString & fileName, bool acceptAbsPath = TRUE ) [虚]移除文件。如果acceptAbsPath为真,由分隔符“/”开始的路径将会移除使用绝对路径的文件。如果acceptAbsPath为假,fileName开始的任意个分隔符将被移除并且结果文件将被移除。
如果文件移除成功,返回真,否则返回假。
bool QDir::rename ( const QString & oldName, const QString & newName, bool acceptAbsPaths = TRUE ) [虚]重命名一个文件或目录。如果acceptAbsPath为真,由分隔符“/”开始的路径将会重命名使用绝对路径的文件。如果acceptAbsPath为假,fileName开始的任意个分隔符将被移除并且结果文件将被重命名。
如果成功,返回真,否则返回假。
在绝大多数文件系统中,只有在oldName不存在或者newName和oldName不在同一个分区中,rename()才会失败。在Windows下,如果newName已经存在,rename()将会失败。无论如何,还有其它几个原因导致rename()失败。例如,例如在文件系统中如果newName指向一个打开的文件,rename()会失败。
实例:fileiconview/qfileiconview.cpp。
bool QDir::rmdir ( const QString & dirName, bool acceptAbsPath = TRUE ) const [虚]移除一个目录。如果acceptAbsPath为真,由分隔符“/”开始的路径将会移除使用绝对路径的目录。如果acceptAbsPath为假,dirName开始的任意个分隔符将被移除并且结果目录将被移除。
为了使rmdir()成功,这个目录必须为空。
如果成功,返回真,否则返回假。
也可以参考mkdir()。
QDir QDir::root () [静态]返回根目录。也可以参考rootDirPath()和drives()。
QString QDir::rootDirPath () [静态]返回根目录的绝对路径。在Unix操作系统这个返回“/”。在Windows文件系统这个返回“C:/”。
char QDir::separator () [静态]返回本地目录分隔符,在Unix下是“/”,在MS-DOS、Windows NT和OS/2下是“\”,在Mac OS下是“:”。你不需要这个函数来构建文件路径。如果你一直使用“/”,Qt将会把你的路径转化为符合底层操作系统的路径的。
bool QDir::setCurrent ( const QString & path ) [静态]设置你的应用程序的当前工作目录为path。如果目录被成功改变,返回真,否则返回假。void QDir::setFilter ( int filterSpec ) [虚]设置被entryList()和entryInfoList()使用的过滤器为filterSpec。过滤器被用来指定entryList()和entryInfoList()返回哪些文件。请参考QDir::FilterSpec。也可以参考filter()和setNameFilter()。
void QDir::setMatchAllDirs ( bool enable ) [虚]如果enable为真,那么所有的目录被包含(例如在entryList()中),并且nameFilter()仅适用于文件。如果enable为假,那么nameFilter()同时适用于文件和目录。也可以参考matchAllDirs()。
void QDir::setNameFilter ( const QString & nameFilter ) [虚]设置entryList()和entryInfoList()使用的名称过滤器为nameFilter。nameFilter是一个可以理解“*”和“?”的通配符过滤器。(请参考QRegExp通配符匹配。)你可以使用单个空格“ ”或者分号“;”来分割几个过滤器条目。
例如,如果你想entryList()和entryInfoList()列出所有以“.cpp”和“.h”结尾的文件,你需要使用dir.setNameFilter("*.cpp *.h")或dir.setNameFilter("*.cpp;*.h")。
也可以参考nameFilter()和setFilter()。
void QDir::setPath ( const QString & path ) [虚]设置目录的路径为path。这个路径被清除多余的“.”、“..”和多重分隔符。不会完成检查来确保这个路径的目录是否存在。路径可以是相对的也可以是绝对的。绝对路径是由目录分隔符“/”或驱动器标识开始的(除了Unix下)。相对路径是一个指定了相对于当前目录的目录名称和文件名称。一个绝对路径的实例是“/tmp/quartz”,一个相对路径的实例是“src/fatlib”。
也可以参考path()、absPath()、exists()、cleanDirPath()、dirName()、absFilePath()、isRelative()和convertToAbs()。
void QDir::setSorting ( int sortSpec ) [虚]设置entryList()和entryInfoList()使用的排序顺序。sortSpec是由QDir::SortSpec中的枚举变量的值或运算得到。
SortSpec QDir::sorting () const返回由setSorting()设置的值。
也可以参考setSorting()和SortSpec。