精品欧美一区二区三区在线观看 _久久久久国色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中文字幕在线| 91九色精品视频| 变态另类丨国产精品| a日韩av网址| 国产精品午夜在线| 99视频在线播放| 国产黄网在线观看| 自拍偷拍欧美专区| 亚洲精品久久视频| 男人添女人下面免费视频| 午夜成年人在线免费视频| caoporn国产精品| 国产日产久久高清欧美一区| 久久婷婷国产麻豆91| 亚洲国产国产| 日韩一区二区免费高清| 欧美xxxxx在线视频| 黄色网址免费在线观看| ww久久中文字幕| 亚洲一区二区中文字幕| 亚洲成人第一网站| 国产一区二区三区自拍| 伊人男人综合视频网| 乱码一区二区三区| 黄色精品视频网站| 精品国产91久久久久久| 国产精品无码乱伦| 黄色免费在线播放| 成人av网址在线| 91久久国产综合久久91精品网站| 成人精品在线看| 欧美影视一区| 日韩中文字幕在线看| 亚洲欧美色图视频| 91精品国产自产精品男人的天堂| 91极品美女在线| 国产3p露脸普通话对白| av中文字幕在线观看| 国产蜜臀av在线一区二区三区| 电影午夜精品一区二区三区| 中文字幕欧美人妻精品| 久久男女视频| 欧美重口另类videos人妖| 欧美日韩在线观看免费| 999成人网| 夜夜嗨av一区二区三区免费区 | 在线观看亚洲天堂| 韩国亚洲精品| 久久国产精品亚洲| 小向美奈子av| 国产高清欧美| 久久在线精品视频| 97成人资源站| 亚洲h色精品| 久久精品一偷一偷国产| 波多野结衣喷潮| 日韩一区二区在线免费| 中文字幕日韩电影| 日韩一级片在线免费观看| 精品国产1区| 在线视频欧美性高潮| 国产午夜福利一区| 久久蜜桃av| 久久av资源网站| 久草福利资源在线观看| 欧美另类专区| 51色欧美片视频在线观看| 天天操天天干视频| 久久av一区| 国产精品日韩精品| 一级黄色片在线播放| 国内欧美视频一区二区| 91福利视频导航| 亚洲精品一级片| 成人高清免费观看| 免费国产一区二区| av播放在线| 亚洲色图19p| 成年女人18级毛片毛片免费| 国产激情视频在线看| 一本色道**综合亚洲精品蜜桃冫| 亚洲熟妇av一区二区三区| 性欧美freehd18| 7777精品伊人久久久大香线蕉最新版| 亚洲三级在线视频| 欧美一性一交| 在线亚洲国产精品网| 91日韩中文字幕| 国产精品嫩草99av在线| 国产精品99久久久久久久久| 一二三四区视频| 成人午夜私人影院| 欧美三日本三级少妇三99| 在线观看免费高清完整| 亚洲激情自拍视频| 男人天堂网视频| 亚洲国产aⅴ精品一区二区三区| 日韩欧美一区在线观看| 美国黄色a级片| 亚州av乱码久久精品蜜桃| 97激碰免费视频| 中文字幕乱码视频| 不卡在线观看av| 亚洲成人蜜桃| 国产无遮挡裸体视频在线观看| 色综合一区二区三区| 人妻体体内射精一区二区| 亚洲理论电影片| 久久国产精品影片| 久久精品五月天| 国产成人午夜电影网| 日韩三级电影网站| 韩国日本一区| 欧美日本高清视频在线观看| 超碰97在线资源站| 一区二区三区午夜探花| 日本高清视频一区| 高h调教冰块play男男双性文| 国产欧美日韩中文久久| 婷婷五月综合缴情在线视频| 97久久精品一区二区三区的观看方式| 日韩精品免费观看| 少妇高潮在线观看| 久久影院亚洲| 九色一区二区| 国模私拍视频在线播放| 911精品国产一区二区在线| 国产偷人妻精品一区| 欧美日韩视频| 91久久久在线| 天天影视久久综合| 在线观看日韩毛片| 国产传媒第一页| 亚洲免费播放| 国产精品久久一区二区三区| 超碰最新在线| 717成人午夜免费福利电影| 影音先锋男人在线| 日韩av一二三| 色女人综合av| 日本肉肉一区| 国产亚洲欧美日韩一区二区| 国产午夜免费福利 | 国产精品揄拍100视频| 伊人成人网在线看| 国产精品免费看一区二区三区| 超碰公开在线| 日韩久久久精品| 国产女片a归国片aa| 黄页视频在线91| 中国一级黄色录像| 精品伊人久久| 欧美区二区三区| www.av黄色| 亚洲国产精品人人做人人爽| 丰满岳乱妇一区二区 | 亚洲精品视频导航| 欧美在线观看视频一区| 国产精品激情av在线播放| 久青草国产在线| 欧美亚洲愉拍一区二区| 性の欲びの女javhd| 免费成人性网站| 一本色道婷婷久久欧美| 精品一区二区三区在线观看视频| 久久天天躁狠狠躁夜夜av| 精品人妻一区二区三区三区四区 | 国产一区二区成人| 国产一级精品毛片| 亚洲欧洲性图库| 99国产精品免费视频| 影音先锋在线一区| 久久人人九九| 精品免费av一区二区三区| 中文字幕欧美专区| www.成人在线观看| 黄网动漫久久久| 丁香花五月婷婷| 狠狠色狠狠色综合系列| 欧美中文字幕在线观看视频| 欧美日韩大片免费观看| 国产不卡视频在线| 欧美18hd| 日韩国产欧美精品在线 | 日本在线播放一区二区三区| 亚洲精品成人三区| 日韩成人在线看| 欧美中文字幕在线视频| 国产一二三区在线观看| 亚洲第一偷拍网| 怡红院成永久免费人全部视频| 亚洲免费伊人电影| aa一级黄色片| 国产一区二区0| 欧美一级片中文字幕| 亚洲h色精品| 蜜桃视频在线观看91| 成人久久精品| 日韩美女视频免费在线观看| 老司机精品视频在线观看6| 亚洲国产精品资源| 91av久久久| 精品久久中文字幕久久av| 成人三级视频在线观看| 99久久婷婷国产综合精品电影| 91精品无人成人www| 亚洲第一黄色| 亚洲综合激情五月| 亚洲资源网站| 国产精品亚洲一区| 久久99久久久精品欧美| 91av在线不卡| 人人超在线公开视频| 中文字幕精品国产| 五月色婷婷综合| 欧美成人精品1314www| 国产日韩在线免费观看| 亚洲va国产天堂va久久en| 日本高清不卡免费| 国产日韩v精品一区二区| yy6080午夜| 国产99精品视频| 久久精品视频在线观看免费| 石原莉奈一区二区三区在线观看| 国产欧美日韩小视频| 在线看片不卡| 资源网第一页久久久| 黑人操亚洲人| 久久久一本精品99久久精品66| 国产另类在线| av成人观看| 国产一区二区三区免费观看在线| 国产精品久久久久国产a级| 国产网站在线| 992tv成人免费影院| 久久青青色综合| 欧美成在线视频| 成人在线免费看片| www.日韩不卡电影av| av在线免费播放网站| 亚洲美女中文字幕| 亚洲色图另类小说| 日韩精品电影网| 三区在线观看| 亚洲精选在线观看| 四虎影视在线播放| 国产视频一区在线| 五月天婷婷在线观看| 亚洲国产精品久久久久秋霞蜜臀 | 少妇久久久久久久| 色综合久久天天综合网| 国产无套丰满白嫩对白| 精品欧美aⅴ在线网站 | 欧美日韩国产不卡| 伊人精品一区二区三区| 欧美精品久久天天躁| 91禁在线观看| 日韩欧美的一区| 亚洲国产精品久久久久久久| 亚洲аv电影天堂网| 天天干视频在线观看| 亚洲黄页网在线观看| 日韩欧美亚洲系列| 亚洲一区二区久久久| 999在线视频| 久久色免费在线视频| 五月天激情在线| 97视频人免费观看| 黑人巨大精品| 国产精品日韩一区| 99久久99九九99九九九| 成人动漫在线观看视频| 欧美日韩一区二区三区在线电影 | 欧美精品二区| 久久久亚洲精品无码| 久久aⅴ乱码一区二区三区| 国产福利影院在线观看| 久久99这里只有精品| 欧美一区二区三区影院| 92国产精品观看| 免费黄在线观看| 一级中文字幕一区二区| 亚洲另类欧美日韩| 欧美少妇bbb| 蜜臀av午夜精品| 国产亚洲精品久久久优势| 91麻豆一二三四在线| 91国语精品自产拍在线观看性色 | 视频一区免费在线观看| 欧美视频国产视频| 成人97人人超碰人人99| 午夜在线观看一区| 亚洲精品欧美激情| 亚洲免费黄色网址| 5月丁香婷婷综合| 无码h黄肉3d动漫在线观看| 中文字幕不卡av| 青草视频在线免费直播| 国产精品第七影院| 99国产精品免费网站| 小说区图片区图片区另类灬| 综合日韩在线| 高清一区二区视频| 成人h动漫精品一区二| 9.1片黄在线观看| 欧美日韩国产精品专区| 国产精品欧美亚洲| 国产午夜精品麻豆| 羞羞网站在线免费观看| 国产精品黄色av| 欧美高清视频看片在线观看| 一区二区三区四区五区视频| 999亚洲国产精| 制服下的诱惑暮生| 国产日韩欧美亚洲| 日韩特黄一级片| 日韩欧美黄色影院| 999在线视频| 日韩免费视频在线观看| 国产伦精品一区二区三区免费优势| 日本不卡二区高清三区| 亚洲午夜极品| 五月婷婷之综合激情| 99久久免费精品| 久久久久久久极品内射| 欧美日韩大陆一区二区| 国产福利在线观看| 2019av中文字幕| 丁香综合av| 日韩久久久久久久久久久久| 久久国产精品99久久人人澡| xxxx日本黄色| 日韩欧美在线中文字幕| 天天操天天干天天插| 久久久噜噜噜久久久| 日韩有吗在线观看| 免费国产成人看片在线| 久久精品国产77777蜜臀| 超碰97av在线| 欧美亚洲国产一区二区三区 | 亚洲午夜精品久久久久久人妖| 丁香婷婷综合色啪| 欧美精品成人久久| 欧美一区二区日韩| jizz性欧美| 91在线观看免费高清| 国产精品久久久久久麻豆一区软件| 亚洲 欧美 另类人妖| 中文幕一区二区三区久久蜜桃| 免费看污视频的网站| 亚洲性日韩精品一区二区| 日韩高清中文字幕一区二区| 欧美一区二区三区精美影视| 天堂va蜜桃一区二区三区| 中国女人特级毛片| 在线观看免费视频综合| 三级外国片在线观看视频| 国产精品视频自拍| 97欧美在线视频| 日本少妇激三级做爰在线| 亚洲欧美激情一区二区| 精品国产99久久久久久宅男i| 大胆人体色综合| 国产亚洲成av人片在线观黄桃| 男人日女人下面视频| www激情久久| 国产三级理论片| 免费91在线视频| av自拍一区| 亚洲深夜福利在线| 欧美性受xxxx黑人| 欧美丰满一区二区免费视频| 在线视频91p| 亚洲在线一区二区| 在线日韩电影| 在线免费观看成年人视频| 欧美羞羞免费网站| 黄网站视频在线观看| 国产乱码精品一区二区三区日韩精品| 欧美精品大片| 中文字幕免费视频| 337p亚洲精品色噜噜狠狠| 少女频道在线观看免费播放电视剧| 国产亚洲欧美一区二区| 三级亚洲高清视频| 成人免费精品动漫网站| 日韩av影院在线观看| 黑人巨大精品欧美一区二区桃花岛| 日韩第一页在线观看| 9色porny自拍视频一区二区| 中国女人真人一级毛片| 久久久久久久久亚洲| 国产亚洲电影| 欧洲成人午夜精品无码区久久| 色综合色综合色综合| 91蜜桃在线视频| 欧美日韩国产综合在线| 国产在线精品一区二区不卡了| 一级片中文字幕| 精品视频9999|