① qt文件读取
1、Qt 作为一个通用开发库,提供了跨平台的文件操作能力。文件操作是应用程序必不可少的部分。
2、Qt5增加了QFileDevice类。途中所涉及的类及其用途简要说明如下:
· QFlie:访问本地文件或者嵌入资源;
· QTemporaryFile:创建和访问本地文件系统的临时文件;
· QBuffer:读写QByteArray;
· QProcess:运行外部程序,处理进程间通讯;
· QTcpSocket:TCP协议网络数据传输;
· QUdpSocket:传输 UDP 报文;
· QSslSocket:使用 SSL/TLS 传输数据;
· QFileDevice:新增加的类,提供了有关文件操作的通用实现。
3、这其中,QProcess、QTcpSocket、QUdpSoctet和QSslSocket是顺序访问设备。所谓“顺序访问”,是指它们的数据只能访问一遍:从头走到尾,从第一个字节开始访问,直到最后一个字节,中途不能返回去读取上一个字节;QFile、QTemporaryFile和QBuffer是随机访问设备,可以访问任意位置任意次数,还可以使用QIODevice::seek()函数来重新定位文件访问位置指针。
4、QFile主要提供了有关文件的各种操作,比如打开文件、关闭文件、刷新文件等。我们可以使用QDataStream或QTextStream类来读写文件,也可以使用QIODevice提供的read()、readLine()、readAll()以及write()这样的函数。值得注意的是,有关文件本身的信息,比如文件名、文件所在目录的名字等,则是通过QFileInfo获取,而不是自己分析文件路径字符串。
5、举个例子,打开文件时,需要参数指定打开文件的模式:
Constant Value Description
QIODevice::NotOpen 0x0000 The device is not open.
QIODevice::ReadOnly 0x0001 The device is open for reading.
QIODevice::WriteOnly 0x0002 The device is open for writing.
QIODevice::ReadWrite ReadOnly | WriteOnly The device is open for reading and writing.
QIODevice::Append 0x0004 The device is opened in append mode, so that all data is written to the end of the file.
QIODevice::Truncate 0x0008 If possible, the device is truncated before it is opened. All earlier contents of the device are lost.
QIODevice::Text 0x0010 When reading, the end-of-line terminators are translated to '\n'. When writing, the end-of-line terminators are translated to the local encoding, for example '\r\n' for Win32.QIODevice::Unbuffered 0x0020 Any buffer in the device is bypassed.
② QT 获得指定文件夹及子文件夹下面的文件
使用QDir::entryInfoList获的文件夹下的所有文件列表(QFileInfoList),然后通过判断QFileInfoList中每个QFileInfo的类型,QFileInfo::isDir()判断是否目录,QFileInfo::isFile()判断是否是文件,对于目录,同样的方法处理即可获得子目录中的文件了。
③ qt怎么读取一个文件夹下的所有文件名
QFileInfoList QDir::entryInfoList(const QStringList & nameFilters, Filters filters = NoFilter, SortFlags sort = NoSort) const
④ QT treewideget怎么实现显示一个文件及文件夹里面的子文件夹
这个可以使用QTreeview和QFileSystemModel:官方文档例子如下:
It is simple to construct a tree view displaying data from a model. In the following example, the contents of a directory are supplied by a QFileSystemModel and displayed as a tree:
QFileSystemModel *model = new QFileSystemModel;
model->setRootPath(QDir::currentPath());
QTreeView *tree = new QTreeView(splitter);
tree->setModel(model);
如果要使用QTreeWidget 就要使用QFileInfo对文件夹进行遍历,挨个添加到QTreeWidget中。有关QFileInfo请参考帮助文档:http://qt-project.org/doc/qt-4.8/qfileinfo.html
⑤ qt 读取目录下的文件个数 包括各种的子目录下的文件只要是在这个大目录下的
//下面只是一个思路示例,不保证语法完全正确。
qint64GetFolderSize(QStringfolder)
{
QDirdir(folder);
if(!dir.exists())
return0;
qint64totalsize=0;
QFileInfoListlist=dir.entryInfoList();
for(intii=0;ii<list.size();ii++)
{
QFileInfofileInfo=list.at(ii);
if(fileInfo.isFile())
totalsize+=fileInfo.size();
elseif(fileInfo.isDir())
{
totalsize+=GetFolderSize(fileInfo.path);
}
}
returntotalsize;
}
⑥ QT treewidget控件怎么能实现从指定的文件夹里面的每个子文件夹中读取指定格式的文件(如.txt)并显示
①执行“视图→工具栏→控件工具箱”命令,展开“其他控件”按钮,“控件工具箱”工具栏
②单击工具栏上,在弹出的下拉列表中,选择“ShockwaveFlashObject”选项,当鼠标变成细十字线,按住左键在工作区中拖出一个矩形(这就是后来的播放窗口)。当
③鼠标移到矩形框入右下角拖动方向的箭头,按住左键并拖动来调整矩形的大小的权利。在矩形框
④单击鼠标右键,在随后弹出的快捷菜单中选择“属性”选项,打开“属性”对话框中,输入需要在“电影”插入Flash动画文件名后面的框和完整路径,然后选择关闭“属性”窗口。
【注】:为了方便移动演示,与保存在同一文件夹中的Flash动画文件的最佳表现,那么路径也可以使用相对路径。
[提示]:Flash动画文件名和完整路径需要插入最好的英文字符!
⑦ QT怎么给一个文件设置读写权限
下面是常用的修改权限的方法:
1、首先找到拒绝访问的文件夹,在其上鼠标右键,选择属性,之后切换到“安全”选项下,之后在底部可以看到有“高级”设置。
2、选择“高级”选项后会弹出文件夹的高级设置框属性,切换到“所有者”选项卡下,在其底部可以找到“编辑”操作选项。
3、点击编辑选项后,在新弹出的窗口中双击用户账号“Achai”,注意一定要选择下面的“替换子容器和对象的所有者”,如果不选择此项打开此文件夹后,下面的子文件夹我们还是无法打开,选择后点“应用”。
⑧ QT读写文件的问题
QFile in("in.txt");
if(!in.open(QIODevice::ReadOnly | QIODevice::Text)){
return ;
}
QString number;
while(!in.atEnd()){
QString line=in.readLine();
number+="AT+COMGS="+line;
}
QFile out("out.txt");
out.open(QIODevice::WriteOnly | QIODevice::Text);
QTextStream outStream(&out);
outStream<<number;
in.close();
out.close();
稍微修改了一下。注意作用域。
⑨ QT 如何读取共享磁盘的文件
先用“net use”命令建立到资源的连接,这个命令支持输入用户名密码,用来取代在资源管理器中输入用户名密码。然后QFile就可以访问了。