我想避免打開另存爲對話框在一個特定的文件夾中。如果我從該文件夾打開一個文件,然後執行另存爲...,它將從該文件夾開始(如預期的那樣)。我想我可以在調用new SaveFileDialog()
後檢查InitialDirectory
並在必要時更改它,但它是一個空字符串。如何知道哪個文件夾另存爲...將在哪裏啓動?
Directory.GetCurrentDirectory()
返回包含可執行文件的文件夾。
var dialog = new SaveFileDialog();
Console.WriteLine(Directory.GetCurrentDirectory()); // Prints "Z:\Documents\Projects\ProjectName\bin\x64\Debug"
Console.WriteLine(dialog.InitialDirectory); // Prints empty string
如何詢問Windows(7或10)Save As ...對話框將在哪個文件夾中啓動?
編輯
這是不是「如何設置初始目錄?」一個完全不同的問題。我想知道在打開對話框之前最初的目錄是什麼,這樣我只能在它將要成爲一個特定目錄的情況下才能更改它。
你檢查這個初始目錄:https://開頭計算器。 com/questions/1175242/setting-the-initial-directory-of-savefiledialog –
初始目錄存儲在某個應用程序的基礎上。無論如何,在註冊表中都不是明文的,只要進行快速測試即可。 'HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ ComDlg32 \ OpenSavePidlMRU'包含一些片段。 'FileDialog.InitialDirectory'無論如何都沒有得到播種,它似乎是在你調用ShowDialog()後確定的。 – CodeCaster
@CodeCaster謝謝。這讓我足夠接近,我能夠通過一些搜索找到答案。最近的目錄位於'LastVisitedPidlMRU'中。解釋這些數據是一個不同的問題。 – SSteve