分享

QT 创建文件夹||选择一个文件(夹)||拷贝 删除文件或文件夹

 南园国际 2011-09-21
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 }


后话:上班上久总想着,整些外快的了,浏览的美女、帅哥们,加盟下俺的微店吧!谢谢啦!

真不可思议,微博、微信都只能玩,微店却可以赚钱!免费,还有手机套送,点“赠品区”可领取!http://www.376608./zsjm.html

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多