Qt中浏览文件夹的实现

来源:互联网 发布:淘宝理赔在哪里登录 编辑:程序博客网 时间:2024/05/07 03:01

QT 创建文件夹

1boolQDir::mkdir ( constQString & dirName ) const

创建一个子目录名为目录名。
如果成功则返回TRUE,否则返回false。

1boolQDir::mkpath ( constQString & dirPath ) const

创建该目录路径dirPath。
该函数将创建所有的父目录中的各个子目录。
如果成功,则返回true,否则返回false。

QT 选择一个文件

1QString QFileDialog::getOpenFileName ( QWidget * parent = 0, constQString & caption = QString(), constQString & dir = QString(), constQString & filter = QString(), QString * selectedFilter = 0, Options options = 0 ) [static]

这是一个方便的静态函数,返回一个现有文件由用户选择。如果用户按下取消,则返回一个空字符串。
示例:

1QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"),
2"/home",
3tr("Images (*.png *.xpm *.jpg)"));

QT 选择文件夹

1QString QFileDialog::getExistingDirectory ( QWidget * parent = 0, constQString & caption = QString(), constQString & dir = QString(), Options options = ShowDirsOnly ) [static]

这个函数创建一个具有给定父窗口部件模态文件对话框。如果父母不为0,对话框将显示在父控件为中心。
该对话框的工作目录设置为目录,并设置标题为标题。上述两种可能是一个空字符串,这种情况下,当前目录和默认标题将分别采用。
options参数包括有关如何运行对话框中,看到QFileDialog各种选项::有关的标志可以传递信息选项枚举。为确保本地文件对话框,ShowDirsOnly必须设置。
在Windows和Mac OS X中,这个静态函数将使用本地文件对话框,而不是QFileDialog。
示例:

1QString dir = QFileDialog::getExistingDirectory(this, tr("Open Directory"),
2"/home",
3QFileDialog::ShowDirsOnly
4| QFileDialog::DontResolveSymlinks);

QT 拷贝 删除文件或文件夹

查看源代码
打印帮助
01#include
02#include
03/*
04qCopyDirectory -- 拷贝目录
05fromDir : 源目录
06toDir   : 目标目录
07bCoverIfFileExists : ture:同名时覆盖  false:同名时返回false,终止拷贝
08返回: ture拷贝成功 false:拷贝未完成
09*/
10boolqCopyDirectory(constQDir& fromDir, constQDir& toDir, boolbCoverIfFileExists)
11{
12QDir formDir_ = fromDir;
13QDir toDir_ = toDir;
14 
15if(!toDir_.exists())
16{
17if(!toDir_.mkdir(toDir.absolutePath()))
18returnfalse;
19}
20 
21QFileInfoList fileInfoList = formDir_.entryInfoList();
22foreach(QFileInfo fileInfo, fileInfoList)
23{
24if(fileInfo.fileName() == "."|| fileInfo.fileName() == "..")
25continue;
26 
27//拷贝子目录
28if(fileInfo.isDir())
29{
30//递归调用拷贝
31if(!qCopyDirectory(fileInfo.filePath(), toDir_.filePath(fileInfo.fileName())))
32returnfalse;
33}
34//拷贝子文件
35else
36{
37if(bCoverIfFileExists && toDir_.exists(fileInfo.fileName()))
38{
39toDir_.remove(fileInfo.fileName());
40}
41if(!QFile::copy(fileInfo.filePath(), toDir_.filePath(fileInfo.fileName())))
42{
43returnfalse;
44}
45}
46}
47returntrue;
48}
原创粉丝点击