精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Qt 文件處理詳細講解教程 下篇

移動開發
本文介紹的是Qt 文件處理的內容,有讀寫文本類、操作二進制類、QTemporaryFile臨時類,等一些常用的類的介紹。

接著我我們上一篇內容講,Qt 文件處理詳細講解教程 上篇。主要介紹了目錄操作和文件的管理、監視文件系統的變化、 文件引擎一些知識。

目錄操作和文件管理

QDir類具有存取目錄結構和內容的能力。使用QDir可以操作目錄,存取目錄或文件信息,操作底層文件系統,而且還可以存取Qt的資源文件Qt使用/作為通用的目錄分割符和URL路徑分隔符。Qt可以使用相對路徑和絕對路徑指向一個文件,isRelative()和isAbsolute()函數可以判斷QDir對象使用的是相對路徑還是絕對路徑。將相對路徑轉換為絕對路徑使用makeAbsolute()函數。目錄路徑可以通過path()函數返回,通過setPath()函數設置新路徑,絕對路徑使用absolutePath()返回。

目錄名可以使用dirName()返回。目錄的路徑可以通過cd() cdUp()改變,可以使用mkdir()創建目錄,rename()改變目錄名。判斷目錄是否存在可以使用exists(),目錄的屬性可以使用 isReadable(),isAbsolute(),isRelative()和isRoot()來獲取,目錄下有很多條目,包括文件,目錄和符號鏈接,總的條目數可以使用count()來統計。entryList()可以返回目錄下所有條目組成的字符串鏈表,文件可以使用remove()函數刪除,rmdir()刪除目錄。

linux du命令

  1. int main(int argc, char **argv)  
  2. {  
  3.    QCoreApplication app(argc,argv);  
  4.    QStringList args=app.arguments();  
  5.    QString path;  
  6.    if(args.count()>1)  
  7.      path=args[1];  
  8.    else  
  9.      path=QDir::currentPath();  
  10.    qDebug()<    du(path);  
  11.    return 0;  
  12. }  
  13. qint64 du(const QString &path)  
  14. {  
  15.     QDir dir(path);  
  16.     qint64 size=0;  
  17.     foreach(QFileInfo fileInfo,dir.entryInfoList(QDir::Files))  
  18.        size+=fileInfo.size();  
  19.     foreach(QString subDir,dir.entryList(QDir::Dirs|QDir::NoDotAndDotDot))  
  20.        size+=du(path+Dir::separator()+subDir);  
  21.     char unit=\\\'B\\\';  
  22.     if(curSize>1024)  
  23.     {  
  24.        curSize/=1024;  
  25.        unit=\\\'K\\\';  
  26.        if(curSize>1024)  
  27.        {  
  28.           curSize/=1024;  
  29.           unit=\\\'M\\\';  
  30.           if(curSize>1024)  
  31.           {  
  32.             curSize/=1024;  
  33.             unit=\\\'G\\\';  
  34.           }  
  35.         }  
  36.      }  
  37.      cout<      return size;  

函數du()中,entryInfoList(QDir::Files)函數返回文件信息,然后根據這些信息計算文件大小,接下來判斷是否有子目錄,如果有則遞歸計算。dir.etnryList(QDir::Dirs|QDir::NoDotAndDotDot)返回所有子目錄并過濾掉. .. 目錄。由于windows(),linux平臺/ \差異,使用QDir::separator()函數來返回特定平臺的目錄分隔符。另外QDirIterator可以完成

枚舉目錄的功能,Qt4.3還引入了文件搜索前綴的概念,文件搜索前綴時至少由兩個字符組成,用來搜索指定文件的路徑。

  1. QDir::setSearchPaths("docs",QStringList("c:\My Docments"));  
  2. QDir::addSearchPaht("Docs",QStringList("D:|Documents"));  
  3. QFile file("docs::qt4.doc"); 

這樣就可以在兩個目錄中查找。

文件管理

QFileInfo類提供了與系統無關的文件信心,它能提供文明名和路徑,存取權限,以及文件是否為目錄或符號鏈接,文件大小,以及***修改/讀取的時間等。

QFileInfo也能從資源中獲取信息。QFileInfo可以使用相對路徑或絕對路徑。文件名可以在QFileInfo的構造函數中傳遞,也可以使用setFile()函數指定,要判斷一個函數是否存在,使用exits()函數,文件大小可以通過size()函數獲取,文件類型可以通過isFile(),isDir(),isSymLink()來獲取,symLinkTarget()函數返回符號鏈接所指向的真正文件名。QFileInfo提供refresh函數刷新文件信息,如果需要QFileInfo每次從文件系統讀取信息,二不是從緩存讀取,可以使用setCaching(false)關閉緩存。

文件名和目錄可以通過path()和fileName()分解,fileName()返回的部分可以通過baseName()和extension()來獲得主文件名和擴展文件名,文件的操作日期可以通過created(),lastModified()和lastRead()獲取,文件的存取權限可通國isReadable,isWriteable(),isExcutetable()獲取,文件的屬主可以通過owner(),ownerId,group(),groupId()獲取,文件的權限和屬主也可以通過 permission()一起讀取。

監視文件系統的變化

在Qt中可以使用QFileSystemWatcher類來監視文件和目錄的改變.使用addPath()函數來監視指定的文件和目錄,如果需要監視多個目錄,使用addPaths()來加入監視,如果要一處不需要監視的目錄,可以使用removePath(),removePaths()函數.當監視的文件被修改或刪除時,產生一個fileChanged()信號,如果被監視的目錄被修改或刪除,產生directoryChanged()信號,下例實現了監視指定目錄的功能.

  1. #include  
  2. #include  
  3. #include  
  4. #Include"Msg.h"  
  5. using namespace std;  
  6. int main(int argc,char **argv)  
  7. {  
  8.     QApplication app(argc,argv);  
  9.     QTextCodec::setCodecForTr(QTextCodec::codecForLocale())  
  10.       
  11.     Msg msg;  
  12.     msg.show();  
  13.     return app.exec();  
  14. }  
  15. Msg::Msg()  
  16. {  
  17.    QFont font;  
  18.    font.setPointSize(24);  
  19.    setFont(font);  
  20.    QStringList args=qApp->arguments();  
  21.    QString path;  
  22.    if(args.count()>1)  
  23.      path=args[1];  
  24.    else  
  25.      path=QDir::currentPath();  
  26.    label=new QLabel();  
  27.    label->setText(tr("監視的目錄:")+path);  
  28.      
  29.    QVBoxLayout *layout=new QVBoxLayout;  
  30.    layout->addWidget(label);  
  31.    setLayout(layout);  
  32.      
  33.    fsWatcher.addPath(path);  
  34.    connect(&fsWatcher,SIGNAL(directoryChanged(QString)),this,SLOT(directoryChanged(QString)));  

在構造函數中讀取命令指定的目錄作為監視目錄,如果沒有指定則監視當前目錄,使用connect()函數將目錄的directroyChanged()信號和響應函數連接.

  1. void Msg::directoryChanged(QString path)  
  2. {  
  3.     QMessageBox::information(NULL,tr("目錄變化"),path);  

文件引擎

Qt的QtDir,QFile,QFileInfo在內部都使用一個,QAbstractFileEngine.通過繼承QAbstractFileEngine,可以編寫自己的文件處理函數,然后繼承QAbstractFileEngineHander注冊自己的文件引擎,然后這樣就可以使用自己的文件讀取引擎了.QAbstractFileEngineHandler是創建QAbstractFileEngine的類工廠.當打開一個文件時,Qt通過內部注冊的文件引擎鏈表,選擇合適的文件引擎并創建相應的引擎對象.為了安裝一個特定的文件引擎,必須繼承QAbstractFileEngineHandler并實現create()函數.實例化引擎時Qt自動注冊該引擎,***注冊的引擎比之前注冊的優先級高.

如果想讀取tar文件的引擎,可以從QAbstractFileEngineHandler繼承

  1. class TarEngineHandler:public QAbstractFileEngineHandler  
  2. {  
  3.     public:  
  4.         QAbstractFileEngine *create(const QString &fileName) const;  
  5. };  
  6. create()函數返回TarEngine對象,TarEngine是文件引擎,時真正的文件處理類.  
  7. QAbstractFileEngine *TarEngineHandler::create(const QString &fileName) const  
  8. {  
  9.     return fileName.toLower().endsWith(".tar")?new TarEngine(fileName):0;  

小結:Qt 文件處理的內容介紹完了,希望本篇對你有幫助,以后有好的文章,一定與大家分享!敬請留言。

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-06-17 13:18:17

Qt 文件

2011-07-01 14:20:59

Qt 事件

2011-07-04 10:33:22

QT

2011-07-06 10:32:07

Xcode

2011-07-06 10:46:33

Xcode

2011-06-17 09:58:26

Qt Chapter QObject

2011-06-17 10:19:11

Qt QWidge QSetting

2023-03-17 08:11:25

2011-04-07 17:43:37

Shapping

2011-04-07 17:54:22

Policing

2011-06-17 09:34:02

Qt 4.5.1 Sqlite 移植

2011-07-04 17:26:00

Qt SQLite

2011-06-22 14:47:51

QT 多線程 QObject

2011-07-05 18:40:19

QT 信號 機制

2011-06-23 18:16:59

Qt Qtopia

2011-02-23 15:59:00

FileZilla

2011-06-17 17:16:01

Qt Eclipse Linux

2009-12-18 16:18:15

Fedora proc

2010-02-23 14:17:20

WCF配置文件

2011-06-27 13:49:43

Qt 數據庫 QSqlQueryM
點贊
收藏

51CTO技術棧公眾號

欧美一区二区二区| 中文字幕久久午夜不卡| 97精品免费视频| 国产亚洲欧美另类一区二区三区| 国产乡下妇女做爰视频| 久操精品在线| 日韩一区二区三区四区| av免费播放网址| 日本视频在线免费观看| 成人国产在线观看| 国产精品一二区| 国产一级二级三级| 国产中文精品久高清在线不| 亚洲一二三级电影| 欧美重口乱码一区二区| 国产av无码专区亚洲av麻豆| 色综合天天爱| 亚洲成色777777在线观看影院 | 99精品国产在热久久| 一区二区三欧美| 一本加勒比波多野结衣| 北岛玲精品视频在线观看| 欧美性xxxx18| 丁香六月激情婷婷| 国产三区在线观看| 欧美高清在线视频| 久久综合毛片| 蜜桃视频污在线观看| 精品在线亚洲视频| 国产成人av网| 依依成人综合网| 欧美精品自拍| 精品国产一区二区三区久久| 日本少妇高潮喷水xxxxxxx| 福利在线一区| 日韩一区二区三区观看| 成人亚洲免费视频| 欧美韩国日本| 欧美日韩久久久久久| 免费日韩中文字幕| 午夜欧美激情| 狠狠躁夜夜躁人人躁婷婷91 | 欧美xxxxxx| 精品久久久国产精品999| www.欧美黄色| 午夜羞羞小视频在线观看| 自拍偷拍亚洲综合| 91青青草免费观看| 国产区精品在线| 精品一区二区在线视频| 国产日本欧美一区二区三区| 中文字幕乱码一区二区| 日韩和欧美一区二区三区| 欧美在线一区二区三区四| 国产精品黄色网| 欧美三级午夜理伦三级小说| 欧美成人video| 婷婷五月综合缴情在线视频| 污视频免费在线观看| 亚洲人成精品久久久久| 国产日韩欧美一区二区| 黄色美女一级片| 国产精品1024久久| 成人3d动漫一区二区三区91| www.国产精品视频| 国产精品亚洲视频| 91chinesevideo永久地址| 国产一级视频在线观看| 亚洲每日更新| 色阁综合伊人av| 国产aaaaaaaaa| 婷婷综合亚洲| 九九热视频这里只有精品| 免费无码毛片一区二区app| 亚洲午夜av| 2021国产精品视频| 中文字幕免费高清网站| 蜜桃av一区二区三区| 91在线视频精品| 亚洲国产精品久久久久久久| 99国产精品国产精品久久| 你懂的视频在线一区二区| av在线免费一区| 亚洲欧美成人一区二区三区| av影院在线播放| 东京一区二区| 亚洲香蕉伊在人在线观| 六月丁香婷婷激情| 欧美97人人模人人爽人人喊视频| 欧美一区二区三区免费大片 | 亚洲中文一区二区| 精品亚洲国内自在自线福利| 国产精品久久久久久久天堂第1集| 天堂av中文字幕| 欧美激情中文字幕| 99久热在线精品视频| 成人免费观看在线观看| 99久久国产综合色|国产精品| 免费亚洲精品视频| 2024短剧网剧在线观看| 色网综合在线观看| 久久黄色一级视频| 北条麻妃国产九九九精品小说| 美女少妇精品视频| 日韩在线 中文字幕| 夜久久久久久| 国产欧美日韩丝袜精品一区| 日韩专区第一页| 中文字幕在线观看一区二区| 青青草精品视频在线| 久久国产三级| 日韩电影在线观看中文字幕| 欧美三级黄色大片| 亚洲91精品| 欧美性受xxxx黑人猛交| 精品国产伦一区二区三| 欧美高清在线视频| 春日野结衣av| 999在线精品| 久久精品国亚洲| 亚洲国产成人精品女人久久| 国产99一区视频免费| 91黄色精品| 成人在线观看网站| 欧美视频精品一区| 李丽珍裸体午夜理伦片| 午夜久久免费观看| 国产精品美女久久久久av超清| 欧美一级在线免费观看| 悠悠色在线精品| 一区二区在线免费看| 亚洲色图丝袜| 98精品国产高清在线xxxx天堂| 国产视频第二页| 亚洲欧洲av一区二区三区久久| 日本xxxxxxx免费视频| 午夜欧洲一区| 欧美在线欧美在线| 四虎精品在线| 欧美性猛xxx| 免费成人深夜夜行p站| 一区在线视频观看| 国产一区二区三区四区hd| 色婷婷在线播放| 欧美va亚洲va国产综合| 国产a免费视频| 国产精品18久久久久久久久| 黄色网zhan| 久久天堂久久| 欧美高跟鞋交xxxxxhd| 国产福利第一页| 一区二区成人在线视频| 午夜性福利视频| 在线欧美日韩| 蜜桃久久精品乱码一区二区 | 欧美日韩在线观看视频| 国产精品一区二区人妻喷水| 亚洲二区视频| 蜜桃欧美视频| 新片速递亚洲合集欧美合集| 国产亚洲精品高潮| 一区二区国产精品精华液| 久久国产精品一区二区| 特级黄色录像片| 日韩成人精品| 性欧美xxxx视频在线观看| 无码国产色欲xxxx视频| 色94色欧美sute亚洲13| 国产免费嫩草影院| 国产一区二区三区香蕉| 久热这里只精品99re8久| 热色播在线视频| 欧美一区二区三区在线视频| www欧美com| 成人午夜激情影院| 日本一本二本在线观看| 日韩激情图片| 高清不卡日本v二区在线| 午夜影视一区二区三区| www.亚洲天堂| 免费a视频在线观看| 在线亚洲一区观看| 一级特级黄色片| 日日噜噜夜夜狠狠视频欧美人| 亚洲日本精品| 国内露脸中年夫妇交换精品| 国产精品成人免费电影| 国产在线激情| 日韩电影免费在线观看中文字幕| 伊人免费在线观看| 亚洲国产精品尤物yw在线观看| 国产综合精品在线| 国产裸体歌舞团一区二区| 国产网站免费在线观看| 成人毛片在线| 国产精品亚洲一区| h1515四虎成人| 午夜精品久久久久久久白皮肤 | 欧美成人h版在线观看| 亚洲av片一区二区三区| 91.麻豆视频| 麻豆精品久久久久久久99蜜桃| 亚洲欧美偷拍三级| 日本一区二区三区网站| 国产一区二区三区香蕉| av观看免费在线| 午夜天堂精品久久久久| 亚洲欧美日韩另类精品一区二区三区| 精品三级av| 久久久久久久999| 久久这里精品| 精品国产污网站| 91美女精品网站| 国产精品美女久久久久高潮| 国产艳妇疯狂做爰视频| 亚洲成人免费| 欧美精品七区| 欧美理伦片在线播放| 91在线观看免费| 免费成人高清在线视频| 国产99视频精品免视看7| 久操av在线| 美日韩精品免费视频| 91短视频版在线观看www免费| 日韩激情视频在线| 成人久久久精品国产乱码一区二区 | 六月丁香在线视频| 亚洲在线视频网站| 国产激情无码一区二区三区| 国产精品久久久久影院亚瑟| 最近中文字幕免费视频| 99国产精品久久久久久久久久久 | 国产视频一区二区三区在线观看| 国产一线在线观看| 亚洲一级二级| 成人午夜免费剧场| 91精品成人| 欧美另类videos| 天天做天天爱综合| 自拍视频一区二区三区| 久久精品高清| 视频一区二区三区在线观看| 精品在线91| 日本精品一区二区三区高清 久久| 亚洲成人一品| 欧美精品一区二区三区在线看午夜 | 精品日本一区二区三区| 免费福利视频一区| 久精品国产欧美| 亚洲免费毛片| 日韩国产精品一区二区| 成人全视频在线观看在线播放高清| 91av福利视频| 裤袜国产欧美精品一区| 国产成人福利网站| 成人四虎影院| 国产中文欧美精品| 免费一级欧美在线大片| 国产aⅴ精品一区二区三区黄| 福利欧美精品在线| 蜜桃成人在线| 99精品电影| 日本免费a视频| 99香蕉国产精品偷在线观看| 日本三区在线观看| 看片网站欧美日韩| 国产精久久久久| 91在线视频网址| 成人片黄网站色大片免费毛片| 国产精品无码永久免费888| 五月天av网站| 狠狠躁18三区二区一区| 亚洲中文字幕一区二区| 欧美日韩免费网站| 国产成人无码专区| 91精品国产手机| 色婷婷av一区二区三| 国产一区二区av| 亚洲七七久久综合桃花剧情介绍| 91精品国产九九九久久久亚洲| 免费成人美女女| 亚洲va欧美va在线观看| 成人国产精品| 99视频在线播放| 亚洲精品无吗| 日韩不卡一二区| 蜜桃久久av| 色偷偷中文字幕| 久久综合一区二区| 国产精品嫩草影院俄罗斯| 午夜欧美大尺度福利影院在线看 | 欧美成人乱码一区二区三区| 日韩av免费观影| 久久精品国产欧美激情| 玖玖在线播放| 亚洲va欧美va国产综合久久| 欧美美乳视频| 又大又硬又爽免费视频| 美腿丝袜在线亚洲一区| www.88av| 亚洲精品伦理在线| 国产精品欧美综合| 亚洲精品久久久久久久久| av国产在线观看| 91精品成人久久| 中文字幕一区日韩精品| 亚洲7777| 久久精品导航| 天天躁日日躁狠狠躁av麻豆男男 | 欧美日韩不卡在线视频| 美日韩一区二区| www.av欧美| 午夜精品久久久久久久蜜桃app| 91久久国语露脸精品国产高跟| 亚洲人成在线观看| 丁香花在线电影小说观看| 成人免费网站在线看| 欧美精选一区二区三区| 欧美日韩一道本| 国产白丝网站精品污在线入口| 男女全黄做爰文章| 色偷偷久久一区二区三区| 免费观看毛片网站| 欧美第一黄色网| 精品国产一区二区三区性色av| 亚洲蜜桃在线| 日韩精品五月天| 日本激情小视频| 欧美午夜美女看片| 日韩美女一级视频| 亚洲91av视频| 国产伦精品一区二区三区免费优势| 天天操天天干天天玩| 久久99久久99小草精品免视看| 国产毛片欧美毛片久久久| 国产精品乱人伦一区二区| jizz国产在线| 一本色道久久88综合亚洲精品ⅰ | 国产在线xxx| 国产伦视频一区二区三区| 欧美激情在线| 精品人妻一区二区三| 亚洲欧美激情在线| av免费在线不卡| 美女视频黄免费的亚洲男人天堂| 国产 日韩 欧美| 男女裸体影院高潮| 国产高清亚洲一区| 国产亚洲精品久久久久久打不开| 日韩视频123| 久久www人成免费看片中文| 国产一级精品aaaaa看| 一区二区激情| 伊人网在线视频观看| 欧日韩精品视频| 麻豆传媒在线免费看| 成人在线视频网| 欧美视频福利| 黄色性生活一级片| 色婷婷综合久久久中文一区二区 | 91高清视频免费观看| 一区二区三区四区在线看 | 大尺度一区二区| 国产精品美女久久久久av爽| 亚洲欧美成人网| 日韩国产大片| 欧美久久在线观看| 久久影院电视剧免费观看| 国产精品51麻豆cm传媒 | 成人欧美大片| 亚洲欧洲一区二区| 国产成人鲁色资源国产91色综| 日本熟妇乱子伦xxxx| 亚洲日韩第一页| 日本国产一区| 农民人伦一区二区三区| 久久女同互慰一区二区三区| 亚洲无码精品在线播放| 欧美夫妻性生活视频| 亚洲精品中文字幕99999| 午夜久久福利视频| 亚洲一区二区免费视频| 国产在线一二三| 久久久亚洲国产| 欧美成人毛片| 成人免费性视频| 亚洲国产成人午夜在线一区| 99精品免费观看| 日本电影亚洲天堂| 欧美日韩国产成人精品| 色婷婷在线影院| 日韩美女一区二区三区四区| 欧美成人h版| 日韩网站在线免费观看| 欧美国产视频在线| 视频一区二区免费| 成人综合网网址| 美女久久一区| 久一区二区三区| 久久精品99国产精品酒店日本|