【QT】 QFileQFileInfo文件操作

很高興在雪易的CSDN遇見你?,給你糖糖

歡迎大家加入雪易社區-CSDN社區云?


前言

本文分享QT對文件的操作技術,希望對各位小伙伴有所幫助!

感謝各位小伙伴的點贊+關注,小易會繼續努力分享,一起進步!

你的點贊就是我的動力(^U^)ノ~YO

目錄

前言

1. QFile構造函數

2. QFile常用函數

3. 實操

? ? ? ? 》創建并打開文件.

? ? ? ? 》判斷文件是否存在.

? ? ? ? 》拷貝文件.

? ? ? ? 》給文件重命名

? ? ? ? 》獲取用戶對指定文件的權限,是否可讀

? ? ? ? 》寫入文件

? ? ? ? 》讀取文件數據

? ? ? ? 》刪除文件

? ? ? ? 》獲取文件夾下所有文件

結論:


1. QFile構造函數

QFile(const QString & name)
QFile(QObject * parent)
QFile(const QString & name, QObject * parent)

2. QFile常用函數

??????????????????????????????????? 函數名???????????????????????????????????????????????????????? 功能
????????????????????????????????????? copy()????????????????????????????????????????????????????? 復制文件
???????????????????????????????????? exists()?????????????????????????????????????????????? 檢查文件是否存在
????????????????????????????????????? open()????????????????????????????????????????????????????? 打開文件
??????????????????????????????????? remove()????????????????????????????????????????????????????? 刪除文件
??????????????????????????????????? rename()??????????????????????????????????????????????????? 修改文件名
???????????????????????????????? setFileName()??????????????????????????????????????????????????? 設置文件名
?????????????????????????????????????? size()????????????????????????????????????????????????????? 文件大小
?????????????????????????????????????? pos()????????????????????????????????????????????? 文件光標當前位置
????????????????????????????????????? seek()????????????????????????????????????????????? 設置文件光標位置
???????????????????????????????????? atEnd()?????????????????????????????????????????? 判斷當前是否為文件尾
????????????????????????????????????? read()????????????????????????????????????????????????? 讀取文件內容
???????????????????????????????????? close()????????????????????????????????????????????????????? 關閉文件

? ? ? ? 》文件打開模式?

????????????????? 模式?????????????? 值?描述
??? QIODevice::NotOpen????????? 0x0000不打開
??? QIODevice::ReadOnly????????? 0x0001?只讀方式
??? QIODevice::WriteOnly????????? 0x0002?只寫方式,如果文件不存在則會自動創建文件
??? QIODevice::ReadWriteReadOnly | WriteOnly讀寫方式
??? QIODevice::Append????????? 0x0004此模式表明所有數據寫入到文件尾
??? QIODevice::Truncate????????? 0x0008?打開文件之前,此文件被截斷,原來文件的所有數據會丟失
??? QIODevice::Text????????? 0x0010讀的時候,文件結束標志位會被轉為’\n’;寫的時候,文件結束標志位會被轉為本地編碼的結束為,例如win32的結束位’\r\n’
??? QIODevice::UnBuffered????????? 0x0020??????????????????????????????????????????????????????? 不緩存

?

3. 實操

? ? ? ? 》創建并打開文件.

//初始化時加載文件路徑
QFile file("F:/test/xxx.txt");
//以讀寫的方式打開文件,成功返回true,失敗返回false
//想用其他方式打開文件,請看上面的文件打開模式
bool ok = file.open(QIODevice::ReadWrite);
//如果文件不存在,則創建并打開該文件


? ? ? ? 》判斷文件是否存在.

//判斷指定文件是否存在.也可以用來判斷在指定路徑下是否有文件和你將要創建的文件重名.
//存在返回true,不存在返回false
bool exist = QFile::exists("F:/test/xxx.txt");


? ? ? ? 》拷貝文件.

//把D盤里的xxx.txt拷貝到到F盤,命名為sss.txt
//拷貝成功返回true,失敗返回false
bool ok = QFile::copy("D:/xxx.txt", "F:/sss.txt");


? ? ? ? 》給文件重命名

QFile file("F:/xxx.txt");
bool ok = file.rename("F:/sss.txt");?
//重命名成功返回true,失敗返回false
//也可以直接調用
bool ok = QFile::remove("F:/xxx.txt", "F:/sss.txt");


? ? ? ? 》獲取用戶對指定文件的權限,是否可讀

QFlags<QFileDevice::Permission> power = QFile::permissions("F:/xxx.txt");?
//判斷文件所有者是否可讀
if (power.testFlag(QFile::ReadOwner))qDebug("Can Read!");

? ? ? ? 》寫入文件

//定義文件內容字符串
QString str= "寫入文件的內容";
QFile file("F:/xxx.txt");?
//打開文件,不存在則創建
file.open(QIODevice::ReadWrite | QIODevice::Text);
//寫入文件需要字符串為QByteArray格式
file.write(str.toUtf8());
file.close();


? ? ? ? 》讀取文件數據

//先打開文件
QFile file("F:/xxx.txt");
file.open(QIODevice::ReadOnly | QIODevice::Text);//使用QTextStream一行一行讀取文件
QTextStream in(&file);
while (!in.atEnd())
{QString line = in.readLine(); ? ? ?//整行讀取qDebug() << line;
}


? ? ? ? 》刪除文件

QFile file("F:/xxx.txt");
bool ok = file.remove();
//刪除成功返回true,失敗返回false
//也可以直接調用
bool ok = QFile::remove("F:/xxx.txt");


? ? ? ? 》獲取文件夾下所有文件

QDir *dir = new QDir("F:/");
QStringList filters;
filters << "*.png" << "*.jpg" << "*.bmp"; ? ? ? ? ?//過濾器,過濾你想要的文件后綴
//用鏈表保存過濾的文件名
QList<QFileInfo> *fileInfo = new QList<QFileInfo>(dir->entryInfoList(filters));//獲取文件數目、文件名稱
for(int i = 0; i < fileInfo->count(); i++)
{//QFileInfo(路徑名的Qstring字符串).filename可以直接取到路徑中的文件名qDebug() << fileInfo->at(i).fileName();}

結論:

? ? ? ? 本文主要介紹對文件的操作!

感謝各位小伙伴的點贊+關注,小易會繼續努力分享,一起進步!

你的贊賞是我的最最最最大的動力(^U^)ノ~YO

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/38394.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/38394.shtml
英文地址,請注明出處:http://en.pswp.cn/news/38394.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux中profile.d和profile的區別

profile.d在profile中加載 profile文件 PATH"/bin:/sbin:/usr/bin:/usr/sbin:/opt/bin:/opt/scripts:/soc/bin:/soc/scripts" LD_LIBRARY_PATH"/usr/local/lib:/usr/lib:/opt/lib:/soc/lib" export SSL_LDPATH/usr/local/lib/ export ZLIB_LDPATH/usr/lo…

appium默認60秒關閉應用的問題

問題&#xff1a;appium默認啟動一個應用的session過期時間是60秒到時間會自動停了剛啟動的應用&#xff0c;工作臺打印&#xff1a;info: [debug] We shut down because no new commands came in的日志 分析&#xff1a;--command-timeout 60 The default command timeout fo…

商城-學習整理-高級-全文檢索-ES(九)

目錄 一、ES簡介1、網址2、基本概念1、Index&#xff08;索引&#xff09;2、Type&#xff08;類型&#xff09;3、Document&#xff08;文檔&#xff09;4、倒排索引機制4.1 正向索引和倒排索引4.2 正向索引4.3 倒排索引 3、相關軟件及下載地址3.1 Kibana簡介3.2 logstash簡介…

【C++深入淺出】初識C++上篇(關鍵字,命名空間,輸入輸出,缺省參數,函數重載)

目錄 一. 前言 二. 什么是C 三. C關鍵字初探 四. 命名空間 4.1 為什么要引入命名空間 4.2 命名空間的定義 4.3 命名空間使用 五. C的輸入輸出 六. 缺省參數 6.1 缺省參數的概念 6.2 缺省參數的分類 七. 函數重載 7.1 函數重載的概念 7.2 函數重載的條件 7.3 C支…

ChatGPT在智能家居控制和環境管理中的應用如何?

智能家居控制和環境管理是近年來在科技領域迅速發展的重要領域之一。智能家居技術通過將物聯網、人工智能和自動化技術相結合&#xff0c;實現了家居設備的智能化、自動化控制和遠程管理。ChatGPT作為強大的自然語言處理模型&#xff0c;在智能家居控制和環境管理方面具有廣泛的…

軟件測試項目實戰,電商業務功能測試點匯總(全覆蓋)

目錄&#xff1a;導讀 前言一、Python編程入門到精通二、接口自動化項目實戰三、Web自動化項目實戰四、App自動化項目實戰五、一線大廠簡歷六、測試開發DevOps體系七、常用自動化測試工具八、JMeter性能測試九、總結&#xff08;尾部小驚喜&#xff09; 前言 支付功能怎么測試…

Spring--BeanFactory和FactoryBean區別

BeanFactory 和 FactoryBean 是 Spring 框架中兩個不同的概念&#xff0c;它們在對象的管理和創建過程中具有不同的角色和功能。下面是它們之間的區別&#xff1a; BeanFactory&#xff1a; BeanFactory 是 Spring 框架的核心接口之一&#xff0c;它是一個對象容器&#xff0c…

C語言刷題訓練【第11天】

大家好&#xff0c;我是紀寧。 今天是C語言筆試刷題訓練的第11天&#xff0c;加油&#xff01; 文章目錄 1、聲明以下變量&#xff0c;則表達式: ch/i (f*d – i) 的結果類型為&#xff08; &#xff09;2、關于代碼的說法正確的是&#xff08; &#xff09;3、已知有如下各變…

使用 Visual Studio GoogleTest編寫 C/C++ 單元測試——入門篇

入門教程 Visual Studio 新建 GoogleTest項目&#xff0c;一路選默認參數 pch.h #pragma once#include "gtest/gtest.h"int add(int a, int b);pch.cpp #include "pch.h"int add(int a, int b) {return a b; }test.cpp #include "pch.h"TES…

【廣州華銳視點】AR電力職業技能培訓系統讓技能學習更“智慧”

隨著科技的發展&#xff0c;教育方式也在不斷地進步和創新。其中&#xff0c;增強現實(AR)技術的出現&#xff0c;為教育領域帶來了全新的可能。AR電力職業技能培訓系統就是這種創新教學方法的完美實踐&#xff0c;它將虛擬與現實相結合&#xff0c;為學生提供了一個沉浸式的學…

【數據庫】Sql Server可視化工具SSMS條件和SQL窗格以及版本信息

2023年&#xff0c;第34周&#xff0c;第1篇文章。給自己一個目標&#xff0c;然后堅持總會有收貨&#xff0c;不信你試試&#xff01; SQL SERVER 官方本身就有數據庫可視化管理工具SSMS&#xff0c;所以大部分都會使用SSMS。以前版本是直接捆綁&#xff0c; 安裝完成就自帶有…

Python多線程與線程池(python線程池ThreadPoolExecutor)concurrent.futures高級別異步執行封裝

文章目錄 Python多線程與線程池一、Python多線程1.1 線程簡介1.2 Python中的多線程1.3 GIL限制 二、線程池2.1 Python中的線程池 三、代碼分析四、參考資料 Python多線程與線程池 一、Python多線程 在進行復雜的計算或處理大量數據時&#xff0c;可以通過創建多個線程來同時執…

Sentinel規則持久化

首先 Sentinel 控制臺通過 API 將規則推送至客戶端并更新到內存中&#xff0c;接著注冊的寫數據源會將新的規則保存到本地的文件中。 示例代碼&#xff1a; 1.編寫處理類 //規則持久化 public class FilePersistence implements InitFunc {Value("spring.application:n…

云原生k8s---資源限制、探針

目錄 一&#xff1a;資源限制 1、資源限制原因 2、Pod 和 容器 的資源請求和限制 3、CPU 資源單位 4、內存 資源單位 5、事例 &#xff08;1&#xff09;事例一 &#xff08;2&#xff09;事例二 二&#xff1a;重啟策略 1、重啟策略模式 2、事例 三&#xff1a;探針…

Win10提醒事項如何打開?電腦上如何添加日程提醒?

有不少上班族表示自己在日常辦公時&#xff0c;經常會忘記一些重要的事情&#xff0c;例如領導安排給自己的任務、會議安排、項目截止日期等。為了避免自己忘記工作事項&#xff0c;很多人都想要在電腦上設置提醒事項或添加日程提醒。那么Win10提醒事項如何打開呢&#xff1f;P…

Golang 中的 archive/zip 包詳解(一):實現 ZIP 壓縮與解壓

Golang 中的 archive/zip 包用于處理 ZIP 格式的壓縮文件&#xff0c;提供了一系列用于創建、讀取和解壓縮 ZIP 格式文件的函數和類型&#xff0c;使用起來非常方便。 實現壓縮功能 1、首先需要創建一個 zip 文件。 zip 文件也是一個文件&#xff0c;首先需要創建一個基礎的…

[Leetcode] [Tutorial] 多維動態規劃(未完待續)

文章目錄 62. 不同路徑Solution 62. 不同路徑 一個機器人位于一個 m ? * ? n 網格的左上角 &#xff08;起始點在下圖中標記為 “Start” &#xff09;。 機器人每次只能向下或者向右移動一步。機器人試圖達到網格的右下角。 問總共有多少條不同的路徑&#xff1f; 示例…

【electron】electron項目創建的方式:

文章目錄 【1】npm init quick-start/electron&#xff08;推薦&#xff09;【2】 克隆倉庫&#xff0c;快速啟動【3】 通過腳手架搭建項目【4】 手動創建項目 【Electron官網】https://www.electronjs.org/zh/docs/latest/api/app 【1】npm init quick-start/electron&#xf…

Excelize Go語言操作 Office Excel文檔基礎庫

Excelize 是 Go 語言編寫的用于操作 Office Excel 文檔基礎庫&#xff0c;基于 ECMA-376&#xff0c;ISO/IEC 29500 國際標準。可以使用它來讀取、寫入由 Microsoft Excel? 2007 及以上版本創建的電子表格文檔。支持 XLAM / XLSM / XLSX / XLTM / XLTX 等多種文檔格式&#xf…

微信小程序實現左滑刪除

一、效果 二、代碼 實現思路使用的是官方提供的 movable-area&#xff1a;注意點&#xff0c;需要設置其高度&#xff0c;否則會出現列表內容重疊的現象。由于movable-view需要向右移動&#xff0c;左滑的時候給刪除控件展示的空間&#xff0c;故 movable-area 需要左移 left:…