我有一個功能,我將文件保存到用戶指定的位置。我正在使用GetSaveFileName()來顯示另存爲對話框。然後,我使用它返回的路徑將文件寫出到該位置。我注意到,當用戶在XP機器上選擇CD-RW驅動器時,它不起作用。這個同樣的過程正常工作在Vista和Windows 7,我提出以下意見:GetSaveFileName()沒有返回CD刻錄臨時區域的路徑XP
- )通過則GetSaveFileName(返回的路徑選擇CD刻錄機的根文件夾時,返回臨時分段區的路徑(F:在我的情況下)在Win7/Vista上。
- 在XP上,選擇CD刻錄機根文件夾只是返回F:\作爲路徑。但是,如果我使用「另存爲」對話框創建子文件夾並將該文件保存在此文件夾(例如F:\文件夾)中,則路徑是臨時文件夾的路徑。
- 在XP中使用其他應用程序(如記事本)將正確重定向到F:\的臨時文件夾。
所以只有當保存到XP上的CD刻錄機的根文件夾時才存在問題。我如何在XP中實現與記事本相同的功能,並將Save As重定向到臨時文件夾,這樣我就可以爲CreateFile()寫入一條路徑了?
你可以發表一個代碼示例,你如何使用'GetSaveFileName',尤其是你在'OPENFILENAME'中使用的Flags。你使用例如'OFN_NOTESTFILECREATE'標誌嗎? – Oleg 2010-06-25 15:15:15
這裏是我正在使用的大概: OPENFILENAME openFileName; ZeroMemory(&openFileName,sizeof(OPENFILENAME)); openFileName.lStructSize = sizeof(OPENFILENAME); openFileName.Flags = OFN_OVERWRITEPROMPT; openFileName.lpstrFilter =「Zip文件(* .zip)」; GetSaveFileName(&openFileName); – Ryand 2010-06-25 16:42:36