閱讀QtCreator 常見檔案操作的實現

2021-08-02 22:53:02 字數 2538 閱讀 8254

在很多應用中經常都要操作檔案的,比如遞迴/非遞迴刪除檔案(夾),拷貝資料夾等,在qtcreator中有乙個輔助類完成了這些常用的操作fileutils,在utils-libs當中。它實現了以下四個操作

static

bool

removerecursively

(const

qstring &filepath, qstring *error = 0)

; static

bool

copyrecursively

(const

qstring &srcfilepath,

const

qstring &tgtfilepath, qstring *error = 0)

; static

bool

isfilenewerthan

(const

qstring &filepath,

const

qdatetime ×tamp)

; static

qstring

resolvesymlinks

(const

qstring &path)

;

下面分別解釋一下它們的實現。

bool fileutils::removerecursively(const

qstring &filepath, qstring *error)

return

false

; }

//不能刪除home(c:/documents and settings/username)

if(dir.path() == qdir::home().canonicalpath())

return

false

; }

//除了..和.之外的資料夾,檔案、快捷方式、隱藏檔案、系統檔案,

//這裡返回的只有名字,不是完整路徑

qstringlist filenames = dir.entrylist(qdir::files

| qdir::hidden

| qdir::system

| qdir::dirs

| qdir::nodotanddotdot);

foreach

(const

qstring &filename, filenames)

//刪除空的資料夾

if(!qdir::root().rmdir(dir.path()))

return

false

; }

}else

//說明是檔案

return

false

; }

}return

true

;}

/*!

\fn resolvesymlinks()

\brief 處理快捷方式,imaxlevel指定最大鏈結次數

*/qstring fileutils::resolvesymlinks(const

qstring &path, const

int&imaxlevel)

bool fileutils::copyrecursively(const

qstring &srcfilepath, const

qstring &tgtfilepath, qstring *error)

}qdir sourcedir(srcfilepath);

qstringlist filenames = sourcedir.entrylist(qdir::files | qdir::dirs | qdir::nodotanddotdot | qdir::hidden | qdir::system);

//深度優先遍歷即可

foreach

(const

qstring &filename, filenames)

}else

return

false

; }

}return

true

;}

/*!

* \brief fileutils::isfilenewerthan

* 比較檔案或資料夾是否比某個時間新,如果filepath是資料夾,那麼它裡面有乙個檔案比timestamp新,

* 就返回真

*/bool fileutils::isfilenewerthan(const

qstring &filepath, const

qdatetime ×tamp)

}return

false

;}

上邊的isfilenewerthan中**與原始碼不太相同,因為我認為當檔案路徑不存在時,應該返回false的。

Qt Creator 常見問題記錄

由於不小心刪除了工程目錄中的qrc檔案,重新加回去後,發現專案樹中resources不見了,如下圖,圖中是顯示的 解決辦法 選擇專案右鍵,清除。再重新縮放專案,即可看到。vs中可以右鍵直接選擇某個專案作為啟動項,qt creator中則沒辦法這麼做 只能右下角選擇具體專案,如下圖 刪除目錄中的bui...

qt creator 如何生成dmp檔案

一 說明 程式崩潰時產生dmp檔案 路徑 dmp 檔案中 名稱 為yyyy mm dd hh mm ss.bmp vs 可以開啟檢視內容 二 使用方法 1 pro檔案中增加 libs ldbghelp 2 main檔案中包含該標頭檔案 3 在main函式體內,註冊異常捕獲函式 ifdef q os ...

QtCreator新增庫檔案和標頭檔案

在使用qtcreator開發影象處理程式的時候想加入opencv庫來處理圖形,新增標頭檔案,需要編輯工程資料夾下的.pro檔案在檔案中新增以下內容,即可包含標頭檔案的資料夾 includepath d opencv2.0 vc2008 include opencv d opencv2.0 vc200...