Qt中浏览文件夹的实现

QT 创建文件夹

1 bool QDir::mkdir ( const QString & dirName ) const

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

1 bool QDir::mkpath ( const QString & dirPath ) const

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

QT 选择一个文件

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

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

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

QT 选择文件夹

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

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

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

QT 拷贝 删除文件或文件夹

01 #include
02 #include
03 /*
04 qCopyDirectory -- 拷贝目录
05 fromDir : 源目录
06 toDir   : 目标目录
07 bCoverIfFileExists : ture:同名时覆盖  false:同名时返回false,终止拷贝
08 返回: ture拷贝成功 false:拷贝未完成
09 */
10 bool qCopyDirectory(const QDir& fromDir, const QDir& toDir, bool bCoverIfFileExists)
11 {
12 QDir formDir_ = fromDir;
13 QDir toDir_ = toDir;
14  
15 if(!toDir_.exists())
16 {
17 if(!toDir_.mkdir(toDir.absolutePath()))
18 return false;
19 }
20  
21 QFileInfoList fileInfoList = formDir_.entryInfoList();
22 foreach(QFileInfo fileInfo, fileInfoList)
23 {
24 if(fileInfo.fileName() == "." || fileInfo.fileName() == "..")
25 continue;
26  
27 //拷贝子目录
28 if(fileInfo.isDir())
29 {
30 //递归调用拷贝
31 if(!qCopyDirectory(fileInfo.filePath(), toDir_.filePath(fileInfo.fileName())))
32 return false;
33 }
34 //拷贝子文件
35 else
36 {
37 if(bCoverIfFileExists && toDir_.exists(fileInfo.fileName()))
38 {
39 toDir_.remove(fileInfo.fileName());
40 }
41 if(!QFile::copy(fileInfo.filePath(), toDir_.filePath(fileInfo.fileName())))
42 {
43 return false;
44 }
45 }
46 }
47 return true;
48 }
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值