2017-06-15 41 views
0

我想避免打開另存爲對話框在一個特定的文件夾中。如果我從該文件夾打開一個文件,然後執行另存爲...,它將從該文件夾開始(如預期的那樣)。我想我可以在調用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 ...對話框將在哪個文件夾中啓動?

編輯

這是不是「如何設置初始目錄?」一個完全不同的問題。我想知道在打開對話框之前最初的目錄是什麼,這樣我只能在它將要成爲一個特定目錄的情況下才能更改它。

+0

你檢查這個初始目錄:https://開頭計算器。 com/questions/1175242/setting-the-initial-directory-of-savefiledialog –

+0

初始目錄存儲在某個應用程序的基礎上。無論如何,在註冊表中都不是明文的,只要進行快速測試即可。 'HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ ComDlg32 \ OpenSavePidlMRU'包含一些片段。 'FileDialog.InitialDirectory'無論如何都沒有得到播種,它似乎是在你調用ShowDialog()後確定的。 – CodeCaster

+0

@CodeCaster謝謝。這讓我足夠接近,我能夠通過一些搜索找到答案。最近的目錄位於'LastVisitedPidlMRU'中。解釋這些數據是一個不同的問題。 – SSteve

回答

-1

我假設你想要的savefiledialog從文件夾中啓動你想要

嘗試這種改變,無論你想

dialog.InitialDirectory="C:\Users\Your_Name\Desktop\"; 
+0

這不是我想要的。請重新閱讀這個問題。 – SSteve