• ベストアンサー

カレントディレクトリについて

MS-DOSの頃、Basicプログラミングではカレントディレクトリというのが重要・便利でした。 さて、現在のWindowsのVBプログラムでは、このカレントディレクトリはどの様に扱えば良いのでしょう? MS-DOSの時と同じ扱いで良いとか、全く考えない方が良いとか、こんな場合は考慮すると便利ですよとか。 色々意見を聞かせて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • honiyon
  • ベストアンサー率37% (331/872)
回答No.4

こんにちは、honiyonです。   本題とは少し離れてしまいますが、カレントのうまい使い方について...   カレントディレクトリを用いたファイル指定は、そのファイルの居場所を明確に指定出来ない反面、明確に指定出来ないからこそ、汎用的に使える一面があります。   例えば、ユーザーがインストールディレクトリ名が気に食わないからとディレクトリ名を変更してしまってもカレントを用いたファイル指定をしていればアプリケーションが正常に動作します。   また、おかしな応用ですが、ショートカットアイコンの作業フォルダの指定を変更すれば、本体とデータを別々のディレクトリで取り扱うなんていう事も可能です。   しかし、アプリケーションの動作途中でいきなりカレントを変更されてしまっては動作が不安定になる要因になります。 起動直後に現在のカレントのフルパスを取得し、内部に保持しておいて、ファイルを指定する際に、その保持しておいたカレントのフルパスを用いて、ファイルをフルパス指定する対策をとった方が良いでしょう。  まとめると、   1.起動時にカレントのフルパスを取得する。(Ex.c:\hoge\)   2.カレントのファイルを指定する場合は、「foo.txt」ではなく、1で取得したフルパスを使って「c:\hoge\foo.txt」と指定。  って感じです。   参考になれば幸いです(..

tng
質問者

お礼

ありがとうございます。「本題とは少し離れて」とありますが、いえいえ、こういう話が聞きたいのです。なる程と思う反面、MS-DOSでのカレントディレクトリのありがたさは、Windowsではあまり発揮できないという感じでしょうか。

その他の回答 (3)

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.3

debug.print app.path でアプリでアプリケーションパスは取れます chdrive chdir curdrive curdir などを調べましょう。

tng
質問者

お礼

前回に引き続きありがとうございます。早速調べてみます。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 私も、カレントディレクトリの有効な利用法はあまりわかりません。 利点を挙げれば、KillやFileCopyステートメントなどで、カレントディレクトリにあるファイルを操作する場合に、フルパスを指定しなくてもよいというところでしょうか。 したがって、特定の場所のファイルにたいしてたくさんのファイル操作を行う場合は便利でしょうか。 ただし、コード上では現在のカレントディレクトリがわからないので、私ならカレントディレクトリ部分の文字列を定数化して使用します。 だいたいの場合、ファイル操作などは基本的にフルパスで指定するので、やっぱりカレントディレクトリなんてほとんど使わないですね。 私も誰かにカレントディレクトリの有効利用法を教えて欲しいです。 では。

tng
質問者

お礼

ありがとうございます。やはりVBではフルパス指定が基本の様な気がします。でもせっかくだからカレントディレクトリの有効利用法、知りたいですね。

  • honiyon
  • ベストアンサー率37% (331/872)
回答No.1

こんちには、honiyonです。   VBに限らず、Windowsアプリケーションのカレントは、デフォルトではアプリケーションの実行ファイルがあるでディレクトリとなります。     但し、ショートカットアイコンのプロパティ等で「作業フォルダ」というものが設定出来ます。これを設定すると、そのフォルダがカレントとなるようです。  参考になれば幸いです(..

tng
質問者

お礼

ありがとうございます。ショートカットアイコンのプロパティでの「作業フォルダ」設定は、早速やってみます。とはいえ、だから何なんだと言われると困りますが。

関連するQ&A