應用程序在搜索文件時的外觀?它在哪裏創建?總是指定絕對路徑是很現實的。例如。我嘗試保存將在項目解決方案的本地bin中的Visual Studio 2010應用程序中使用的文本文件,但始終出現運行時錯誤。Windows應用程序中使用的文件的工作目錄
1
A
回答
0
它通常是它被調用的文件夾。您可以使用以下方式找到它:_getcwd
:http://msdn.microsoft.com/en-us/library/sf98bd4y%28VS.80%29.aspx
0
如果使用相對路徑,則將您提供的路徑與進程的工作目錄結合在一起。
保持對GUI進程的工作目錄的控制是非常困難的。這是因爲GUI過程往往以很多不同的方式開始。更重要的是,文件對話有改變工作目錄的趨勢。最後,工作目錄在進程中的所有線程之間共享,並且可以由任何線程更改。有很多陷阱。
所以在一個GUI過程中,我建議你不要使用相對路徑。或者,如果您使用相對路徑,則在使用它們之前將它們轉換爲絕對路徑。並根據明確定義的根路徑執行轉換。
除非您正在編寫便攜式應用程序,否則您不應該期望能夠保存到包含可執行文件的目錄。在現代系統上,可執行文件通常位於只讀目錄中。
如果要保存用戶設置,請將它們保存在用戶配置文件中的適當位置。另一方面,如果您要讀取文件,而您從不修改,那麼將它們與可執行文件一起存儲是合理的。但即使在這種情況下,使用完整的絕對路徑打開文件。通過將包含可執行文件的目錄與文件的相對路徑相結合來創建該路徑。
因此,要總結,對你說:
這是很少的現實始終指定絕對路徑。
但我不同意。我會反駁說,使用絕對路徑往往是最好的選擇。但是你不必硬編碼絕對路徑。您可以並應該在運行時創建它。
相關問題
- 1. 應用程序工作目錄(VB.NET)
- 2. 使用庫目錄中的文件發佈IOS應用程序
- 3. Windows應用程序的工作文件應該寫在哪裏?
- 4. 如何使工作目錄文件可用於WebStart應用程序?
- 5. windows中程序文件目錄的用途是什麼?
- 6. 500.22的子目錄中的文件與子虛擬目錄的ASP.NET MVC應用程序根ASP.NET應用程序
- 7. 從應用程序保存應用程序目錄中的文件
- 8. Windows應用程序數據目錄
- 9. 什麼是Windows應用程序中的Google應用程序引擎sdk目錄?
- 10. 使C++應用程序使用文件目錄,而不是pwd
- 11. 如何在給定的目錄中啓動應用程序,使用其他作爲其工作目錄?
- 12. 寫入應用程序文檔目錄中的目錄錯誤
- 13. 從Windows 8.1中的解決方案目錄訪問MHT文件應用程序
- 14. Windows工作流的使用在大型Web應用程序
- 15. 現成的Web應用程序工作目錄
- 16. Docker Golang應用程序的工作目錄是什麼?
- 17. 帶命令行應用程序的MacOSX C++工作目錄
- 18. 如何獲取/設置winforms應用程序的工作目錄?
- 19. 應用程序域之間的獨立工作目錄
- 20. FormsAuthentication.RedirectToLoginPage在網站根目錄下的應用程序不工作
- 21. 在Qt應用程序中獲取當前工作目錄
- 22. 工作流程應用程序項目
- 23. Cordova Windows應用程序停止工作
- 24. Windows應用程序已停止工作
- 25. 獲取應用程序目錄中的文件列表
- 26. 主要包和應用程序目錄中的文件
- 27. 一個使用Windows應用程序帳戶訪問目錄
- 28. 用於定位rails應用程序文件的目錄
- 29. 子目錄中的Rails應用程序
- 30. iOS應用程序中的子目錄
請定義「它被調用的文件夾」的含義。 – 2013-04-09 18:28:58
歷史上,您調用該程序時所處的目錄,即'%CD%'。現在,我相信這取決於程序的啓動方式。例如,如果它使用鏈接啓動,它通常是程序(.exe)所在的文件夾。但是,它可以在鏈接的屬性中更改。雖然我不確定VC的默認設置是什麼。 – mrks 2013-04-09 18:31:26
什麼時候該進程改變工作目錄? – 2013-04-09 18:32:55