カテゴリー
VB6

ファイルを処理するときのパスの指定方法

なんというか恥さらしな気もしますが、VBというかプログラム全般でパスの指定方法の注意点です。

今までなんにも考えずにEXEと同一フォルダのtestにアクセスするときに"testhoge.txt"みたいな感じで相対パスで指定していたのですが、これって直接EXE実行の時はいいですけど、他のPGから起動させたときはうまくいかないんですね・・・
カレントディレクトリの問題なので、VB6のchdir(だったかな?)命令を使ってカレントディレクトリを指定すれば問題は解決しました。
ただ、Windowsのカレントディレクトリってのはいつ変わるかよく仕様が分からないので、最近はパスはドライブ名から指定して絶対指定を行うようにしています。
で、うっかり
app.path & "test"
こんな風にするとドライブの直下にEXEを置いて実行すると
"c:\test"
とかなって、OSによっては「ファイルが見つかりません」エラーになります。
Win2Kとかは賢くて、こんなパス渡してもうまく処理してくれますけどね。
なんか初歩的なことなんですが、最近ってDBアクセスがメインだから、意外とファイル処理ってやる機会自体少ないよなあ。

この記事を書いた人: A-tak

A-tak.com(えいたっく どっとこむ)の管理人。
Apple野郎なおっさんでしたが、ちょっと最近のAppleには飽き気味。
A-tak.comは2002年2月から運営(前身のサイトは1999年3月から)。今年で18年目!

Youtube / Twitter / Mastodon / Facebook