1. 程式人生 > 其它 >Qt-QDir目錄操作與檔案系統類

Qt-QDir目錄操作與檔案系統類

1. QDir類具有存取目錄結構和內容的能力,使用它可以操作目錄、存取目錄或檔案資訊、操作底層檔案系統,還可以存取Qt的資原始檔

2. Qt使用"/"作為通用的目錄分隔符和URL路徑分隔符。如果在程式中使用"/"作為目錄分隔符,Qt會將其自動轉換為符合底層作業系統的分隔符(如Linux使用"/",Windows使用"\")

3. QDir類相關函式

  • isReadable(), isRoot(), isRelative(), isAbsolute():目錄的相關屬性,分別是可讀,根目錄,相對路徑,絕對路徑
  • makeAbsolute():將相對路徑轉換為絕對路徑
  • path():返回目錄的路徑
  • absolutePath():返回目錄的絕對路徑
  • setPath():設定新路徑
  • dirName():返回目錄名,通常返回絕對路徑中的最後一個元素,如果QDir指向當前目錄,則返回"."
  • cd(), cdUp():改變目錄路徑
  • mkdir():建立目錄
  • rename():重新命名目錄名
  • exists():判斷目錄是否存在
  • count():統計目錄下的所有條目,包括檔案、目錄和符號連線
  • entryList():返回目錄下所有條目組成的字串連結串列
  • entryInfoList(const QStringList& nameFilters, Filters filters = NoFilter, SortFlags = NoSort):按照某種過濾方式獲得目錄下的檔案列表

        ① 引數1指定了檔名的過濾方式,如"*","tar.gz"

        ② 引數2指定了檔案屬性的過濾方式,如目錄、檔案、讀寫屬性

過濾方式 作用描述
QDir::Dirs 按照過濾方式列出所有目錄
QDir::AllDirs 列出所有目錄,不考慮過濾方式
QDir::Files 只列出檔案
QDir::Drives 列出磁碟驅動器(UNIX系統無效)
QDir::NoSymLinks 不列出符號連線(對不支援符號連線的作業系統無效)
QDir::NoDotAndDotDot 不列出"."和".."
QDir::AllEntries 列出目錄、檔案和磁碟驅動器,相當於Dirs|Files|Frives
QDir::Readable 列出所有具有"讀"屬性的檔案和目錄
QDir::Writable 列出所有具有"寫"屬性的檔案和目錄
QDir::Executable 列出所有具有"執行"屬性的檔案和目錄
QDir::Modified 只列出被修改過的檔案(UNIX系統無效)
QDir::Hidden 列出隱藏檔案(在UNIX系統下,隱藏檔案的檔名以"."開始)
QDir::System 列出系統檔案(在UNIX系統下指FIFO、套接字和裝置檔案)
QDir::CaseSensitive 檔案系統如果區分檔名大小寫,則按大小寫方式進行過濾

③ 引數3指定了列表的排序情況

排序方式 作用描述
QDir::Name 按名稱排序
QDir::Time 按時間排序(修改時間)
QDir::Size 按檔案大小排序
QDir::Type 按檔案型別排序
QDir::Unsorted 不排序
QDir::DirsFirst 目錄優先排序
QDir::DirsLast 目錄最後排序
QDir::Reversed 反序
QDir::IgnoreCase 忽略大小寫方式排序
QDir::LocaleAware 使用當前本地排序方式進行排序
  • remove():刪除檔案
  • rmdir():刪除目錄