QDir类参考.docx
- 文档编号:26195441
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:23
- 大小:27.43KB
QDir类参考.docx
《QDir类参考.docx》由会员分享,可在线阅读,更多相关《QDir类参考.docx(23页珍藏版)》请在冰豆网上搜索。
QDir类参考
QDir类参考
QDir类提供了访问目录结构和它们的内容的与平台无关的方式。
详情请见……
#include
所有成员函数的列表。
公有成员
∙enumFilterSpec{Dirs=0x001,Files=0x002,Drives=0x004,NoSymLinks=0x008,All=0x007,TypeMask=0x00F,Readable=0x010,Writable=0x020,Executable=0x040,RWEMask=0x070,Modified=0x080,Hidden=0x100,System=0x200,AccessMask=0x3F0,DefaultFilter=-1}
∙enumSortSpec{Name=0x00,Time=0x01,Size=0x02,Unsorted=0x03,SortByMask=0x03,DirsFirst=0x04,Reversed=0x08,IgnoreCase=0x10,DefaultSort=-1}
∙QDir()
∙QDir(const QString & path,const QString & nameFilter=QString:
:
null,int sortSpec=Name|IgnoreCase,int filterSpec=All)
∙QDir(const QDir & d)
∙virtual~QDir()
∙QDir&operator=(const QDir & d)
∙QDir&operator=(const QString & path)
∙virtualvoidsetPath(const QString & path)
∙virtualQStringpath()const
∙virtualQStringabsPath()const
∙virtualQStringcanonicalPath()const
∙virtualQStringdirName()const
∙virtualQStringfilePath(const QString & fileName,bool acceptAbsPath=TRUE)const
∙virtualQStringabsFilePath(const QString & fileName,bool acceptAbsPath=TRUE)const
∙virtualboolcd(const QString & dirName,bool acceptAbsPath=TRUE)
∙virtualboolcdUp()
∙QStringnameFilter()const
∙virtualvoidsetNameFilter(const QString & nameFilter)
∙FilterSpecfilter()const
∙virtualvoidsetFilter(int filterSpec)
∙SortSpecsorting()const
∙virtualvoidsetSorting(int sortSpec)
∙boolmatchAllDirs()const
∙virtualvoidsetMatchAllDirs(bool enable)
∙uintcount()const
∙QStringoperator[](int index)const
∙virtualQStrListencodedEntryList(int filterSpec=DefaultFilter,int sortSpec=DefaultSort)const (obsolete)
∙virtualQStrListencodedEntryList(const QString & nameFilter,int filterSpec=DefaultFilter,int sortSpec=DefaultSort)const (obsolete)
∙virtualQStringListentryList(int filterSpec=DefaultFilter,int sortSpec=DefaultSort)const
∙virtualQStringListentryList(const QString & nameFilter,int filterSpec=DefaultFilter,int sortSpec=DefaultSort)const
∙virtualconstQFileInfoList*entryInfoList(int filterSpec=DefaultFilter,int sortSpec=DefaultSort)const
∙virtualconstQFileInfoList*entryInfoList(const QString & nameFilter,int filterSpec=DefaultFilter,int sortSpec=DefaultSort)const
∙virtualboolmkdir(const QString & dirName,bool acceptAbsPath=TRUE)const
∙virtualboolrmdir(const QString & dirName,bool acceptAbsPath=TRUE)const
∙virtualboolisReadable()const
∙virtualboolexists()const
∙virtualboolisRoot()const
∙virtualboolisRelative()const
∙virtualvoidconvertToAbs()
∙virtualbooloperator==(const QDir & d)const
∙virtualbooloperator!
=(const QDir & d)const
∙virtualboolremove(const QString & fileName,bool acceptAbsPath=TRUE)
∙virtualboolrename(const QString & oldName,const QString & newName,bool acceptAbsPaths=TRUE)
∙virtualboolexists(const QString & name,bool acceptAbsPath=TRUE)
静态公有成员s
∙QStringconvertSeparators(const QString & pathName)
∙constQFileInfoList*drives()
∙charseparator()
∙boolsetCurrent(const QString & path)
∙QDircurrent()
∙QDirhome()
∙QDirroot()
∙QStringcurrentDirPath()
∙QStringhomeDirPath()
∙QStringrootDirPath()
∙boolmatch(const QStringList & filters,const QString & fileName)
∙boolmatch(const QString & filter,const QString & fileName)
∙QStringcleanDirPath(const QString & filePath)
∙boolisRelativePath(const QString & path)
详细描述
QDir类提供了访问目录结构和它们的内容的与平台无关的方式。
QDir用来操作路径名称、关于路径和文件的访问信息和操作底层文件系统。
QDir使用相对或绝对文件路径来指向一个文件。
绝对路径是从目录分隔符“/”或者带有一个驱动器标识(除了在Unix下)。
如果你总是使用“/”作为目录分隔符,Qt将会把你的路径转化为符合底层的操作系统的。
相对文件名是由一个目录名称或者文件名开始并且指定一个相对于当前路径的路径。
“当前”路径是指应用程序的工作目录。
QDir自己的路径可以通过setPath()设置并且通过path()获得。
一个绝对路径的实例是字符串“/tmp/quartz”,相对路径看起来像是“src/fatlib”。
你可以使用函数isRelative()来检查一个QDir使用的是相对还是绝对文件路径。
调用convertToAbs()可以把一个相对的QDir转化为绝对的。
使用cleanDirPath()可以得到一个简化的路径。
为了获得没有符号连接或者多余的“..”元素的路径,请使用canonicalPath()。
路径可以通过setPath()设置,或者使用cd()和cdUp()来改变。
QDir提供了几个静态函数,例如,setCurrent()设置应用程序的工作目录并且currentDirPath()来获得应用程序的工作目录。
访问一些普通的路径是由以下一些静态函数提供的,current()、home()和root()返回QDir对象或者currentDirPath()、homeDirPath()和rootDirPath()返回字符串路径。
count()返回目录中的条目数量。
通过entryList()可以获得目录中的所有文件和目录的名称的字符串列表。
如果你希望得到QFileInfo指针的列表请使用entryInfoList()。
这些函数都可以使用名称过滤器、属性过滤器(例如只读、只要文件不要目录等等)和排列顺序。
过滤器和排序可以调用setNameFilter()、setFilter()和setSorting()来设置。
它们可以通过entryList()和entryInfoList()的参数来指定。
mkdir()可以创建一个新目录,rename()可以重命名一个目录并且rmdir()可以移除一个已经存在的目录。
remove()可以移除一个已经存在的文件。
你可以通过exists()、isReadable()和isRoot()来询问一个目录。
使用filePath()可以得到一个带有文件名的路径,并且dirName()可以得到目录名称,这两个函数都不能检测文件或者目录是否存在。
drives()提供根目录的列表,在Unix系统上,这个返回一个只包含根目录“/”的列表,在Windows上,这个列表将包含“C:
/”并且还有“D:
/”等等。
如果你需要一个适应底层操作系统形式的路径,请使用convertSeparators()。
实例:
请参考一个目录是否存在。
QDird("example");//“./example”
if(!
d.exists())
qWarning("Cannotfindtheexampledirectory");
Traversingdirectoriesandreadingafile.
QDird=QDir:
:
root();//“/”
if(!
d.cd("tmp")){//“/tmp”
qWarning("Cannotfindthe\"/tmp\"directory");
}else{
QFilef(d.filePath("ex1.txt"));//“/tmp/ex1.txt”
if(!
f.open(IO_ReadWrite))
qWarning("Cannotcreatethefile%s",f.name());
}
一个列出当前目录中所有文件(不包括符号连接)的程序,按大小排序,小的在前。
#include
#include
intmain(intargc,char**argv)
{
QDird;
d.setFilter(QDir:
:
Files|QDir:
:
Hidden|QDir:
:
NoSymLinks);
d.setSorting(QDir:
:
Size|QDir:
:
Reversed);
constQFileInfoList*list=d.entryInfoList();
QFileInfoListIteratorit(*list);
QFileInfo*fi;
printf("BytesFilename\n");
while((fi=it.current())!
=0){
printf("%10li%s\n",fi->size(),fi->fileName()。
latin1());
++it;
}
return0;
}
也可以参考输入/输出和网络。
成员类型文档
QDir:
:
FilterSpec
这个枚举变量描述的是QDir是如何选择目录中的哪些条目被返回的。
被指定的过滤器的值可以由下述列表中的值或运算得到:
∙QDir:
:
Dirs-只列出目录。
∙QDir:
:
Files-只列出文件。
∙QDir:
:
Drives-列出磁盘驱动器(在Unix下被忽略)。
∙QDir:
:
NoSymLinks-不列出符号连接(不支持符号连接的操作系统会忽略它)。
∙QDir:
:
All-列出目录、文件、驱动器和符号连接(除非你指定系统,这不会列出损坏的符号连接)。
∙QDir:
:
TypeMask-Dirs、Files、Drives和NoSymLink的掩码。
∙QDir:
:
Readable-列出应用程序可以读访问的文件。
∙QDir:
:
Writable-列出应用程序可以写访问的文件。
∙QDir:
:
Executable-列出应用程序可以执行访问的文件。
可执行需要由Dirs和Files组合。
∙QDir:
:
RWEMask-Readable、Writable和Executable标记的掩码。
∙QDir:
:
Modified-只列出已经被修改的文件(在Unix下被忽略)。
∙QDir:
:
Hidden-列出隐藏文件(在Unix下就是以.开始的文件)。
∙QDir:
:
System-列出系统文件(在Unix下就是FIFO、套接字和设备文件)。
∙QDir:
:
AccessMask-Readable、Writable、Executable、Modified、Hidden和System标记的掩码。
∙QDir:
:
DefaultFilter-内部标记
如果你不设置Readable、Writable或Executable中的任何一个,QDir将会设置它们三个全部。
这使得默认很容易写并且同时也很有用。
实例:
Readable|Writable是指列出应用程序可以读访问、写访问或者两者都可以的所有文件。
Dirs|Drives是指列出驱动器、目录、所有应用程序可以读、写、执行的文件并且也包括到这些文件/目录的符号连接。
QDir:
:
SortSpec
这个枚举变量描述的是QDir如何排列由entryList()或entryInfoList()返回的条目。
被指定的排列的值可以由下述列表中的值或运算得到:
∙QDir:
:
Name-按名称排序。
∙QDir:
:
Time-按时间排序(修改时间)。
∙QDir:
:
Size-按文件大小排序。
∙QDir:
:
Unsorted-不排序。
∙QDir:
:
SortByMask-Name、Time和Size的掩码。
∙QDir:
:
DirsFirst-首先是目录,然后是文件。
∙QDir:
:
Reversed-相反的排序顺序。
∙QDir:
:
IgnoreCase-不区分大小写进行排序。
∙QDir:
:
DefaultSort-内部标记。
前四种中你只能指定一个。
如果你同时指定DirsFirst和Reversed,目录仍然会被放在前面,但是按照反向的顺序,文件仍然排在目录后面,当然也是按照反向的顺序。
成员函数文档
QDir:
:
QDir()
构造一个指向当前目录的QDir。
也可以参考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”中所有文件的实例:
QDird("/tmp");
for(inti=0;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并且释放它的资源。 QStringQDir: : absFilePath(const QString & fileName,bool acceptAbsPath=TRUE)const[虚] 返回路径中一个文件的绝对路径名称。 不检查这个文件是否真的存在于这个目录中。 在fileName中多余的分隔符或者“.”和“..”目录将被移除(请参考cleanDirPath())。 如果acceptAbsPath为真,由分隔符“/”开始的fileName将会被不改变地立即返回。 如果acceptAbsPath为假,绝对路径将被被加到fileName的前面并且结果字符串被返回。 也可以参考filePath()。 QStringQDir: : absPath()const[虚] 返回绝对路径(一个由“/”或驱动器标识开始的路径),可能包含符号连接,但是不会包含“.”、“..”或者多个分隔符。 也可以参考setPath()、canonicalPath()、exists()、cleanDirPath()、dirName()和absFilePath()。 实例: fileiconview/qfileiconview.cpp。 QStringQDir: : canonicalPath()const[虚] 返回规范的路径,也就是没有符号连接或者多余的“.”、“..”元素的路径。 在没有符号连接的系统上,这个函数总是返回和absPath()返回值一样的值。 如果规范路径不存在(通常是因为挂起的符号连接)。 也可以参考path()、absPath()、exists()、cleanDirPath()、dirName()、absFilePath()和QString: : isNull()。 boolQDir: : cd(const QString & dirName,bool acceptAbsPath=TRUE)[虚] 改变QDir的目录为dirName。 如果acceptAbsPath为真,由分隔符“/”开始的路径将会导致这个函数改变到这个绝对路径。 如果acceptAbsPath为假,dirName前面的任何数量的分隔符都将被移除并且这个函数将会进入到dirName中。 如果新的路径存在并且是可读的,返回真。 注意如果新的目录不存在,逻辑上的cd()操作不会被执行。 调用cd("..")等于调用cdUp()。 也可以参考cdUp()、isReadable()、exists()和path()。 实例: fileiconview/mainwindow.cpp。 boolQDir: : cdUp()[虚] 改变目录为QDir的当前目录的上一级目录。 如果新的路径存在并且是可读的,返回真。 注意如果新的目录不存在,逻辑上的cdUp()操作不会被执行。 也可以参考cd()、isReadable()、exists()和path()。 QStringQDir: : cleanDirPath(const QString & filePath)[静态] 移除filePath的多重目录分隔符“/”并且解析其中的“.”或者“..”。 符号连接会被保留。 这个函数不返回规范路径,但会是输入的最简化的版本。 “./local”变为“local”、“local/../bin”变为“bin”并且“/local/usr/../bin”变为“/local/bin”。 也可以参考absPath()和canonicalPath()。 QStringQDir: : convertSeparators(const QString & pathName)[静态] 把pathName里面的“/”分隔符转化为适用于底层操作系统的分隔符。 返回转化的字符串。 在Windows上,convertSeparators("c: /winnt/system32")返回“c: \winnt\system32”。 在一些操作系统上,例如在Unix上,返回的字符串可能和参数是一样的。 voidQDir: : convertToAbs()[虚] 把目录路经转化为绝对路径。 如果它已经是绝对路径了,就什么也不做。 也可以参考isRelative()。 uintQDir: : count()const 返回找到的目录和文件的数量。 EquivalenttoentryList()。 count()。 也可以参考operator[]()和entryList()。 QDirQDir: : current()[静态] 返回应用程序当前目录。 使用pa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- QDir 参考