搜索文件时应用程序在哪里查看?它在哪里创建?始终指定绝对路径很少是现实的。例如。我尝试在项目解决方案的本地bin中保存将在Visual Studio 2010应用程序中使用的文本文件,但总是遇到运行时错误。
答案 0 :(得分:0)
它通常是从中调用的文件夹。您可以使用_getcwd
:http://msdn.microsoft.com/en-us/library/sf98bd4y%28VS.80%29.aspx
答案 1 :(得分:0)
如果使用相对路径,则提供的路径将与流程的工作目录合并。
很难保持对GUI进程工作目录的控制。那是因为GUI流程往往以很多不同的方式启动。更重要的是,文件对话框有改变工作目录的倾向。最后,工作目录在进程中的所有线程之间共享,并且可以由任何线程更改。有很多陷阱。
因此,在GUI过程中,我建议您永远不要使用相对路径。或者,如果使用相对路径,则在使用它们之前将它们转换为绝对路径。并根据明确定义的根路径执行转换。
除非您正在编写便携式应用程序,否则您不应期望能够保存到包含可执行文件的目录。在现代系统中,可执行文件通常位于只读目录中。
如果要保存用户设置,请将其保存在用户个人资料中的适当位置。
另一方面,如果您想要读取永远不会修改的文件,那么将它们与可执行文件一起存储是合理的。但即使在这种情况下,使用完整的绝对路径打开文件。通过将包含可执行文件的目录与文件的相对路径相结合来创建该路径。
总而言之,你说:
始终指定绝对路径很少是现实的。
但我不同意。我反驳说,使用绝对路径通常是最好的选择。但是你不必硬编码绝对路径。您可以而且应该在运行时创建它。