2010-06-11 60 views
15

我是一個Qt初學者,只是陷入了這個問題。我正在尋找一個文件SomePath/NewDirectoryA/NewFile.kml(NewFile.kml將成爲NewDirectoryA中唯一的文件,使這個目錄僅用於維護項目中的語義)。如何在Qt中創建一個新文件

如果SomePath/NewDirectoryA/NewFile.kml存在,那麼我會在我的代碼中使用它,如果它不存在,那麼我必須創建它。如果此文件不存在,則此目錄在SomePath中也不存在。所以,如果只有我必須創建一個文件,我可以使用QFile並以ReadWrite或WriteOnly模式打開它。

但問題是我必須創建目錄本身的文件。我用QFile與文件名稱SomePath/NewDirectoryA/NewFile.kml嘗試,但它沒有奏效。請給我一種方法,我可以在給定位置(SomePath)的新目錄(NewDirectorA)中創建一個新文件(NewFile.kml)。

回答

33

布爾QFile::open(用於openmode模式)[虛]

[...]

注:只寫或讀寫模式, 如果相關的文件已經不存在 ,這功能將嘗試 在打開它之前創建一個新文件。

Qt的文件創建警告

Platform Specific Issues

文件權限是在類Unix系統和 的Windows不同的處理。在類Unix系統上的不可寫目錄下,無法創建文件 。在Windows上並不總是如此,對於 實例,「我的文檔」目錄通常不可寫,但其 仍可以在其中創建文件。

目錄與

布爾 QDir::mkdir (常量的QString & DIRNAME)const的

創建稱爲 DIRNAME的子目錄中創建。

布爾QDir::mkpath (常量的QString & dirPath)const的

創建的目錄路徑dirPath。

該函數將創建創建 目錄所需的所有父目錄 目錄。

+1

我不能創建一個包含所有必要父目錄的文件嗎? – 2010-06-11 16:58:18