2017-07-17 145 views
-1

我是Qt的初學者,我的項目的一部分是將現有文件移動到另一個現有目錄?有人能給我一個具體的例子嗎?我不確定我是否應該使用Qfile :: rename()。我嘗試寫這樣的如何將文件移動到Qt中的另一個現有目錄

QDir::rename("/home/joshua/test.txt","/home/joshua/test/test_c.txt"); 

但誤差不能調用成員函數「布爾的QDir ::重命名(常量QString的&,常量QString的&)」沒有對象 的QDir ::重命名(「/家/約書亞/的test.txt」, 「/家庭/約書亞/測試/ test_c.txt」); ^

對不起,大家都是我的錯,我問了一個如此不清楚和如此愚蠢的問題,我很抱歉浪費你的時間,我是一個初學者,在我問這個問題之前,我真的沒有注意到這個問題之前曾被問過,因爲我的水平很低。因爲我太天真了,我再也不能問問題了,所以請原諒我問這個問題,我太緊張了,因爲我在一家公司實習,我的項目很難,所以我沒有選擇這樣做浪費你的時間,最後,我想對那些以前見過我的問題的人表示感謝。

+1

您可以先使用'QFile :: copy()'函數將文件從一個目錄複製到另一個目錄,然後刪除已複製'QFile :: remove()'的文件。 – vahancho

+0

[如何在Qt中移動文件?]的可能重複(https://stackoverflow.com/questions/4916090/how-to-move-files-in-qt) – eyllanesc

+1

在問你應該做一個搜索之前,你的問題問題已經被回答過了。要提出一個好問題,您應該閱讀以下內容:https://stackoverflow.com/help/how-to-ask – eyllanesc

回答

3

按照documentation

布爾一個QFile ::重命名(常量QString的& newName)將

重新命名當前的文件名()爲newName指定的文件。返回 如果成功則返回true;否則返回false。

在你的情況,你必須做到以下幾點:

QFile file("/home/joshua/test.txt"); 
file.rename("/home/joshua/test/test_c.txt"); 
0

QDir::rename()QDir實例方法,所以你需要一個QDir對象上調用它(這個目錄將是基地通過文件名)。對於你的例子,如:

QDir d("/home/joshua"); 
bool renamed = d.rename("test.txt" , "test/test_c.txt"); 

你會希望利用返回值。

或者,您可以使用QFile::rename() - 默認目錄是進程的當前工作目錄。

相關問題