QT设计界面遍历文件夹进而计算hash码

这个星期的主要任务是用QT5.2.0+vs2012设计一个界面,提供一个按钮,点击之后弹出一个选择目录的窗口,然后选择一个指定的目录,选择好之后计算这个目录下面的所有文件的hash,然后显示出来.

设计的主要思路:

1.创建Dialog基类的工程,添加QPushButton、QLineEdit和QTextEdit的控件,并通过connect将其关联;

2.利用QFileDialog::getExistingDirectory得到一个Qir类的文件夹信息fileinfo,将文件夹路径fileinfo.path()打印在QLineEdit中,然后利用toWCharArray()函数将fileinfo.path()转换为wchar_t array[]型;

3.调用上个星期vs创建好的dll计算该目录下每一个文件的hash码;

4.将hash码导出到一个文件,再QFile file(filename)打开文件,QTextStream in(&file);  然后fileTextEdit->setText(in.readAll())将文件打印输出在QTextEdit中。

注意的几个问题:

1.利用treeview可以得到目录树形式的资源管理器,但是用QFileDialog才能得到图形界面;

2.QFileDialog可以操作一个或多个的文件、一个文件夹,具体的按F1可以看到解释文档;

3.MFC的所有函数可以在MSDN中查看,其中File Management Functions中可以看到所有与文件处理相关的函数;

4.在QT界面下不能添加自己创建的库,需要在vs中操作,所以需要安装一个qt-vs-addin-1.2.2-opensource的工具;

5.无论是打开还是遍历文件,要及时close。

时间: 2024-10-06 20:38:13

QT设计界面遍历文件夹进而计算hash码的相关文章

Linux下的C程序,遍历文件夹并统计其中各个类型文件所占百分比

递归遍历一个目录下的所有文件和文件夹,统计各个类型文件所占的百分比 程序代码a.cpp(编译命令:g++ a.cpp -o a) #include <stdio.h> #include <sys/stat.h> #include <sys/types.h> #include <unistd.h> #include <stdlib.h> #include <dirent.h> #include <string.h> stru

python遍历文件夹下的文件

在读文件的时候往往需要遍历文件夹,python的os.path包含了很多文件.文件夹操作的方法.下面列出: os.path.abspath(path) #返回绝对路径 os.path.basename(path) #返回文件名 os.path.commonprefix(list) #返回多个路径中,所有path共有的最长的路径. os.path.dirname(path) #返回文件路径 os.path.exists(path)  #路径存在则返回True,路径损坏返回False os.path

递归实现显示目标文件夹的所有文件和文件夹,并计算目标文件夹的大小

递归的一个典型应用就是遍历目标文件夹,把该文件夹下的所有文件和文件夹打印或显示出来,还可以递归计算目标文件夹的总大小. 1: class Program 2: { 3: static void Main(string[] args) 4: { 5: Console.WriteLine("输入目标文件夹"); 6: string path = Console.ReadLine(); 7: FindFoldersAndFiles(path); 8: Console.WriteLine(&q

多线程IO操作(扫描文件夹并计算总大小)

场景为,给到一个硬盘上文件或文件夹,(当然文件夹时,多线程的优势才能越发体现出来),得到该文件或文件夹的大小和计算该结果所需要的时间. 首先是单线程下的例子,这个可难不倒大家,代码如下: 01 public class TotalFileSizeSequential { 02   private long getTotalSizeOfFilesInDir(final File file) { 03     if (file.isFile()) return file.length(); 04  

OpenCV实现遍历文件夹下所有文件

OpenCV中有实现遍历文件夹下所有文件的类Directory,它里面包括3个成员函数:(1).GetListFiles:遍历指定文件夹下的所有文件,不包括指定文件夹内的文件夹:(2).GetListFolders:遍历指定文件夹下的所有文件夹,不包括指定文件夹下的文件:(3).GetListFilesR:遍历指定文件夹下的所有文件,包括指定文件夹内的文件夹. 若要使用Directory类,则需包含contrib.hpp头文件,此类的实现在contrib模块. 下面为测试代码: cv::Dire

递归的一些应用(一)遍历文件夹

函数的递归调用 递归的含义 递归其实也只是一种算法上的描述,不是一种新的语法! 有时候,我们解决问题的时候,会遇到这种情况,当我们把一个大的问题按照某种解决方案分成若干个小的问题的时候,发现这些小问题的解决方案其实和刚才大问题的解决方案又是一样的! 典型的,比如:求阶乘! 10! = 10 * 9! 9! =  9 * 8! 8! = 8 * 7! …… 语法上,函数的递归调用,就是函数在执行的过程中自己又调用自己! 递归的两个要点: 1,  递归的出口:就是指什么时候停止递归调用 2,  递归

Android开发手记(21) 遍历文件夹

我们在遍历文件夹的时候由于涉及到SD卡相关操作,所以我们需要添加如下权限: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> 首先,需要检查SD卡挂载状态: boolean sdCard

Java遍历文件夹下所有文件并替换指定字符串

应用场景:比如有一个深层次的文件目录结构,如:javaAPI 每个文件里面都有相同的内容,而我们要统一修改为其他内容.上千个文件如果一个个修改显得太不明智. import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; import java.io.PrintWriter; public class Test { /** *

php高效遍历文件夹、高效读取文件

/** * PHP高效遍历文件夹 * @param string $path 目录路径 * @param integer $level 目录深度 */ function fn_scandir($path = './', $level = 0) { $file = new FilesystemIterator($path); $filename = ''; $prefix = ''; $url = ''; foreach ($file as $fileinfo) { $filename = $fi