1

搜索文件时应用程序在哪里查找?它是在哪里创建的?总是指定绝对路径是不太现实的。例如,我尝试将要在 Visual Studio 2010 应用程序中使用的文本文件保存在项目解决方案的本地 bin 中,但总是出现运行时错误。

4

2 回答 2

0

它通常是调用它的文件夹。您可以使用以下方式找到它:http _getcwd: //msdn.microsoft.com/en-us/library/sf98bd4y%28VS.80%29.aspx

于 2013-04-09T18:28:04.137 回答
0

如果您使用相对路径,则您提供的路径将与进程的工作目录相结合。

保持对 GUI 进程的工作目录的控制非常困难。这是因为 GUI 进程往往以许多不同的方式启动。更重要的是,文件对话框有改变工作目录的趋势。最后,工作目录在进程中的所有线程之间共享,并且可以被任何线程更改。有很多陷阱。

因此,在 GUI 过程中,我建议您永远不要使用相对路径。或者,如果您确实使用相对路径,则在使用它们之前将它们转换为绝对路径。并针对明确定义的根路径执行该转换。

除非您正在编写便携式应用程序,否则您不应期望能够保存到包含可执行文件的目录。在现代系统上,可执行文件通常位于只读目录中。

如果要保存用户设置,请将它们保存在用户配置文件中的适当位置。

另一方面,如果您想读取从未修改过的文件,那么将它们与可执行文件一起存储是合理的。但即使在这种情况下,也要使用完整的绝对路径打开文件。通过将包含可执行文件的目录与文件的相对路径相结合来创建该路径。

所以,总结一下,你说:

总是指定绝对路径是不太现实的。

但我不同意。我会反驳说,使用绝对路径通常是最好的选择。但是您不必对绝对路径进行硬编码。您可以而且应该在运行时创建它。

于 2013-04-09T18:28:22.047 回答