FileDialog(OpenFileDialog/SaveFileDialog)使用哪個目錄?
當我從我的應用程序中顯示它時,它會打開不是Environment.CurrentDirectory文件夾的文件夾。 我怎樣才能得到這個目錄路徑?或者它由操作系統控制,我不知道它?FileDialog使用哪個目錄?
回答
您可以使用OpenFileDialog的「InitialDirectory」屬性進行設置。
根據MSDN:
在Windows Vista中,如果InitialDirectory 設置爲一個完整的文件名,而不是 只是一個目錄路徑,初步 目錄將默認無論對 應用程序的路徑,或到用戶最後選擇 文件的目錄 。
否則它似乎沒有說什麼,對我來說它看起來像Environment.SpecialFolder.MyDocuments,我使用Vista。
此信息以註冊表形式存儲在每個應用程序的基礎上,因此您應該可以檢索它。我不記得確切的註冊表位置,我會盡力找到它...
編輯:
在Windows7中,它存儲在HKEY_CURRENT_USER \ SOFTWARE \微軟\的Windows \ CurrentVersion \ Explorer中\ COMDLG32 \ LastVisitedPidlMRU
值名字只是數字,內容是一些二進制格式編碼的,所以它可能不是很容易閱讀...
你可以做一個的extern調用GetOpenFileName功能看什麼最初的OPENFILENAME結構商店(看着lpstrInitialDir)。
從MSDN:lpstrInitialDir
指向可以指定初始目錄的以NULL結尾的字符串的指針。
你也可以查看以下注冊表項: HKEY_CURRENT_USER \軟件\微軟\的Windows \ CurrentVersion \ Explorer中\ COMDLG32 \ LastVisitedMRU \
有一個名爲MRUList與名爲二進制索引的順序的字符串值值。如果您在MRUList中打開第一個索引的二進制值(無論它是哪個字母),您將看到應用程序的名稱和目錄。
編輯:你可能會發現code在這個討論的底部有用,如果你想手動設置/獲取它。
如果我調用GetOpenFileName,則對話框會出現。我只需要知道什麼目錄是我的應用程序的「當前目錄」。 – nightcoder 2009-09-13 09:46:38
如何查看顯示它的方法的源代碼,並查看它使用的是什麼字符串?
沒有VS安裝在這裏,否則我會爲你做。 – GR7 2009-09-13 03:37:34
它只是調用GetOpenFileName的winapi函數。而且,如果函數內部決定哪個文件夾將在OPENFILENAME.lpstrInitialDir結構成員中爲空,那麼該函數似乎就會初始化一個文件夾。 – nightcoder 2009-09-13 09:50:08
- 1. qt filedialog目錄
- 2. C#.Net從fileDialog獲取工作目錄
- 3. 在SWT FileDialog中設置初始目錄
- 4. Java FileDialog選擇目錄:僅限Mac OSX?
- 5. 使用awt FileDialog選擇目錄的問題
- 6. 在MacOS X上使用FileDialog代替文件和目錄的JFileChooser
- 7. open()默認使用哪個目錄?
- 8. 如何讓Windows記住使用tkinter filedialog的最後一個目錄?
- 9. 如何使用FileDialog?
- 10. 一個SWT的FileDialog選定的目錄,只有在Swing
- 11. 如何使一個java FileDialog接受目錄作爲它在OS X中的FileType?
- 12. 哪個目錄是openssldir?
- 13. clickonce發佈哪個目錄?
- 14. 哪個目錄應該用於Lucene索引目錄?
- 15. Outlook的保存FileDialog在哪裏?
- 16. 如何在所需的目錄中打開Filedialog
- 17. 在Traits中添加默認文件目錄到FileDialog
- 18. 爲什麼FileDialog有時不記得初始目錄?
- 19. 如何確定鏈接指向哪個目錄使用bash
- 20. 「brew cask install」使用的是哪個目錄?
- 21. 我應該使用哪個Capistrano 3目錄結構?
- 22. 我在dist目錄中使用哪個paper.js文件?
- 23. 我應該在Tomcat中使用哪個臨時目錄?
- 24. 哪個數據庫使用這種文件和目錄結構?
- 25. 問題使用FileDialog應用程序
- 26. 哪個物理目錄是firefox的localstorage目錄?
- 27. 找出哪個git提交一個目錄來自哪裏?
- 28. php exec在哪個目錄下?
- 29. zsh中`cat <( - )`返回哪個目錄?
- 30. 哪一個必須是寶石目錄?
問題不是「如何設置它」,而是「如何獲取它」...... InitialDirectory屬性是空的,直到它被調用代碼設置爲 – 2009-09-12 23:45:04