2012-09-24 20 views
1

我對樣品QT項目工作的MAC和保存我使用QFileDialog ::則GetSaveFileName API與本地對話框的文件,如果我保存的文件保存文件到只讀的目錄,它仍然保存!但行爲應該是它應該給出錯誤信息。當我在Windows系統上觀察時,一切正常,它會給出錯誤信息,但在MAC ID上,任何人都不能面對此更早?使用QFileDialog ::則GetSaveFileName受限位置不給錯誤信息

+0

您確定該目錄是隻讀的嗎?如果OSX允許在只讀目錄中創建文件,我會感到非常驚訝。最後,這是不是由Qt處理,但由操作系統... –

+0

我只是好奇,所以只創建了所有隻讀權限的目錄,然後試圖保存該文件,它得到保存!通過使用可可本地對話不允許但卻使用Qt的API它 –

+0

你真的創建一個文件,或者你只是從QFileDialog ::則GetSaveFileName(獲得一個文件名)..但是?在文檔中沒有提及文件權限,因此它們可能只是被忽略,並且應用程序必須向用戶發出這樣的錯誤。 – Claudio

回答

1

getSaveFileName()剛剛返回給用戶選擇的位置的路徑。它實際上並不創建任何文件。在嘗試實際創建/寫入文件之前,權限不是問題。

+0

奇怪的是,沙寫道,他觀察到OSX和Windows之間的不同的行爲,所以我懷疑他居然真的中創建的文件... –

+0

是的,我實際上只讀取權限創建的文件手動,然後我用則GetSaveFileName()來只存儲一些X文件到該位置,這裏是我的代碼 QString的文件名= QFileDialog ::則GetSaveFileName(NULL, 「出口目錄」,lastExportDir,filters.join( 「;;」),NULL,QFileDialog :: ShowDirsOnly); ...這裏我使用一些過濾器,然後lastExportDir點到最後導出的目錄顧名思義。 –

+0

是的,但是從你說的這聽起來你聽起來像''getSaveFileName()''要尊重權限,這永遠不會因爲它實際上不會做任何需要權限的事情。 – Chris