不二如是 发表于 2016-11-4 10:34:54

149-目录级操作-【扫盲】

本帖最后由 不二如是 于 2016-11-4 15:35 编辑



在147,搞定了文件操作。

有文件操作,一定就会有目录操作~

这次把这个山头拿下哈{:9_228:} ~

好了,上程序~~~~~~~~~~~~~~~~~~~~~~~~~~~~


[*]目录QDir

QDir类用来访问目录结构及其内容,可以操作很多事情:

路径名、访问路径、文件相关信息、底层文件系统、Qt资源系统。

Qt使用‘/’作为通用的分隔符和URL目录分隔符!

Qt使用‘/’作为通用的分隔符和URL目录分隔符!

Qt使用‘/’作为通用的分隔符和URL目录分隔符!

重要的事情,说三遍哈~

QDir可以使用相对路径或者绝对路径指向一个文件,之前见过啦,稍微搞两个例子:

QDir(“/FishC/YYYJJXZ/Hi.png”)//相对路径
QDir(“C:/FishC/YYYJJXZ/Hello.jpg”)//绝对路径

把应用在目录的常用函数,拉个单子总结下哈:


isRelative()、isAbsolute() 判断一个QDir是否使用了相对或者绝对路径
makeAbsolute() 将一个相对路径转换为绝对路径
path() 获取目录路径
setPath() 设置新的路径
AbsolutePath() 获取绝对路径
dirName() 获取目录名
cd() QDir对象转换到指定目录
cdUp() 跳到父目录 与cd("..")等价
mkdir() 创建目录
rename() 进行重命名
rmdir() 删除目录(只此一种)
exists() 测试指定目录是否存在



常用的操作目录条目、文件、符号链接的函数:


count() 返回一个目录中条目数量
entryList() 获取所有条目名称
entryInfoList() 获取一个条目的信息
filePath() 获取一个目录中的文件相对路径
absoluteFilePath() 获取一个目录中的文件绝对路径


关于目录中的文件过滤,可以使用:

名称过滤器(name filters)+ 通配符(wildcards)进行文件名匹配。举个栗子:

QStringList filters;
fileters<<".cpp"<<".cxx"<<".coo";
dir.setNameFilters(filters);

这样QDir如上三种后缀的文件会被过滤出来~


最后就是QDir中常用目录的获取函数:



憋急,翻译在下面哈~


返回类型为QDir 返回类型为QString 返回值
current() currentPath() 用用程序的工作目录
home() homePath() 用户的home目录
root() rootPath() root根目录
temp() tempPath() 系统存放临时文件的目录





[*]监视器QFileSystemWatcher

QFileSystemWatcher类提供了一个用来监视文件和目录修改的接口,通过监视一个指定路径的列表来监视文件系统中:

文件和目录的改变

常用函数如下:


addPath() 监视一个指定文件或者目录
addPaths()监视多个路径文件或者目录
removePath()、removePaths() 移除路径
directories() 函数获取目录路径
files() 获取每一个添加到文件系统监视器上面的文件路径



当文件被修改、重命名、删除后,自动发射fileChanged()信号

同理,当目录或者其他的内容被修改、删除,会发射directoryChanged()信号

注意下;

当文件被重名或者被删除后,或者目录被移除后,QFileSystemWatcher会停止监视!


哈哈,上面的配色有没有恶心到你?{:10_256:}



小甲鱼 发表于 2016-11-4 15:09:47

厉害!

不二如是 发表于 2016-11-4 15:12:47

小甲鱼 发表于 2016-11-4 15:09
厉害!

是被我的配色吓到了吗

8.88是小甲鱼老湿的大手笔吧{:10_297:}
页: [1]
查看完整版本: 149-目录级操作-【扫盲】