VB6 IDEでアプリケーションをデバッグするときに、ログファイルに絶対パス(例:c:\logfile.log
)を指定する必要があります。そうしないと、ログファイルに何も書き込まれません。しかし、アプリケーションが稼働しているときに絶対パスを指定する必要はありません。すなわち、logfile.log
と指定できます。どうしてこれなの?FileSystemObject - デフォルトの場所
ログファイルは、常に.exeと.dllと同じディレクトリにあります。
VB6 IDEでアプリケーションをデバッグするときに、ログファイルに絶対パス(例:c:\logfile.log
)を指定する必要があります。そうしないと、ログファイルに何も書き込まれません。しかし、アプリケーションが稼働しているときに絶対パスを指定する必要はありません。すなわち、logfile.log
と指定できます。どうしてこれなの?FileSystemObject - デフォルトの場所
ログファイルは、常に.exeと.dllと同じディレクトリにあります。
ファイルが現在の作業ディレクトリに書き込まれています。
exeが実行されているとき、これはexeが置かれているフォルダですが、デバッグモードではexeファイルは実際に一時ビルドの場所から実行されています。
プログラムでMsgBox(App.Path)
を実行し、表示される場所を確認するだけで、これをテストできます。
デバッグ中に上記のコマンドを実行すると、表示される場所にlogfile.log
が表示されることがあります。
ありがとう。 App.Pathは私のアプリケーションの作業ディレクトリ(デバッグモード)のようです。これは書き込み先のファイルではありません。 – w0051977
さて、作業ディレクトリは、それを起動したアプリケーションが何とかなるでしょう。場合によっては、EXEフォルダ(エクスプローラから実行した場合)になることがあります。現在のパスは 'CurDir()'を参照してください。 App.Pathを使用すると、exeへのパスが与えられますが、既定では書き込みできません。 – Deanna
私は、WindowsのGUIシェルは、DOSの時代に得たほとんどのCDの理解から離れた人々を導いていると思います。私は、App.PathがVB6プログラマの心のコンセプトに取って代わったと思う。なぜなら、多くの場合、少なくとも同じパスから始めるからだ。ただし、プログラムのショートカットでもこの(「開始」)パスを設定できます。また、CommonDialogの使用は、実行中にそれを変更することがあります。 – Bob77
[VB6アプリケーションのデバッグ時に作業ディレクトリを設定する方法](http://stackoverflow.com/questions/154299/how-to-set-working-directory-when-debugging-vb6-app) – GSerg