在很多應用中經常都要操作檔案的,比如遞迴/非遞迴刪除檔案(夾),拷貝資料夾等,在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...