Vb6 FileSystemObject-默认位置

Vb6 FileSystemObject-默认位置,vb6,Vb6,调试应用程序(在VB6 IDE中)时,必须指定日志文件的绝对路径(例如c:\logfile.log),否则不会向日志文件写入任何内容。但是,当应用程序处于活动状态时,我不必指定绝对路径,即我可以指定logfile.log。为什么会这样 日志文件始终与.exe和.dll位于同一目录中。您的文件正在写入当前工作目录 当您的exe运行时,这是exe所在的文件夹,但是在调试模式下,您的exe实际上是从临时生成位置运行的(实际上不记得它在VB6中的位置) 您可以通过在程序中执行MsgBox(App.Pat

调试应用程序(在VB6 IDE中)时,必须指定日志文件的绝对路径(例如
c:\logfile.log
),否则不会向日志文件写入任何内容。但是,当应用程序处于活动状态时,我不必指定绝对路径,即我可以指定
logfile.log
。为什么会这样


日志文件始终与.exe和.dll位于同一目录中。

您的文件正在写入当前工作目录

当您的exe运行时,这是exe所在的文件夹,但是在调试模式下,您的exe实际上是从临时生成位置运行的(实际上不记得它在VB6中的位置)

您可以通过在程序中执行
MsgBox(App.Path)
并查看出现的位置来测试这一点


您可能会发现在调试时运行上述命令时出现的位置中有一个
logfile.log

。App.Path似乎是我的应用程序的工作目录(在调试模式下)。这不是它正在写入的文件。不完全是,工作目录将是启动它的应用程序经过的任何目录。有时它恰好是EXE文件夹(从资源管理器运行时)。有关当前路径,请参见
CurDir()
。使用App.Path可以为您提供exe的路径,但默认情况下是不可写的。我认为Windows中的GUI外壳让人们不再理解我们大多数人在DOS时代获得的CD。我怀疑App.Path已经取代了VB6程序员心目中的这个概念,因为在很多情况下,他们至少从同一条路径开始。但是,程序快捷方式也可以设置此(“起始位置”)路径。或者,在执行过程中使用CommonDialog可能会改变它。